- PHP動態網站開發實踐教程
- 盧欣欣 李靖主編
- 649字
- 2021-09-17 17:55:53
2.4 案例:打印月歷

2.4 案例:打印月歷
日歷能夠幫助用戶選擇日期,避免用戶手動輸入時可能出現的格式錯誤,廣泛應用于各類網站中。本節主要實現打印日歷中一個月的日期。
2.4.1 案例呈現
本節中使用流程控制語句中的選擇結構和循環結構實現如圖2-7所示的打印月歷功能。由于目前還沒有學習日期相關函數,因此本節僅打印2020年1月的月歷。在案例中主要實現以下功能。
1)以表格形式打印2020年1月月歷。
2)日期和星期之間要一一對應。

圖2-7 打印月歷
2.4.2 案例分析
月歷中一般根據星期采用7列形式顯示,第一列代表星期日,第二列代表星期一,第三列代表星期二,以此類推。在編寫代碼時,需要考慮1號是星期幾,例如,2020年1月1日是星期三,因此需要在1號前面輸出3個空格。在學習完第4章函數的相關知識后,可以通過日期函數獲得某一天是星期幾。本例把“2020年1月1日是星期三”作為一個已知條件。根據以上需求,可以得出案例的實現需要分為以下幾個步驟。
1)定義變量$days表示2020年1月份的天數,定義變量$space表示1月1日前需要打印的空格數目,同時代表1月1日是星期幾,定義最終需要打印的字符串$str。
2)在$str中初始化月歷頭部。
3)通過for循環輸出1月1日前的空格。
4)通過for循環輸出每個日期,當空格數目和當前日期之和除以7,余數為1時,需要添加tr開始標記,表示另起一行進行輸出;當空格數目和當前日期之和是7的倍數時,通過添加tr結束標記進行換行。
5)當$days和$space之和不是7的倍數時,需要在最后添加tr結束標記,表示最后一行輸出完畢。
2.4.3 案例實現
經過以上分析,本案例的完整代碼如下,運行結果如圖2-7所示。


推薦閱讀
- ASP.NET Core:Cloud-ready,Enterprise Web Application Development
- Building a RESTful Web Service with Spring
- Hands-On Microservices with Kotlin
- Learn React with TypeScript 3
- Mastering Linux Network Administration
- Learning DHTMLX Suite UI
- MATLAB 2020從入門到精通
- Apache Spark 2.x for Java Developers
- PLC應用技術(三菱FX2N系列)
- Visual C#.NET Web應用程序設計
- 輕松上手2D游戲開發:Unity入門
- Building Serverless Web Applications
- 會當凌絕頂:Java開發修行實錄
- 程序員必會的40種算法
- Android嵌入式系統程序開發(基于Cortex-A8)