java 显示日历_JAVA显示日历(已知年和该年第一天为星期几)
這是我個人對這個題目理解,可能有些雜亂,僅供參考。
題目:
編寫程序,提示用戶輸入年份和代表該年第一天是星期幾的數字,然后在控制臺上顯示該年的日歷表。
控制臺顯示結果如下:(我用_代表空格)
圖1:以2018年為例
首先,說一下我認為在做這道題之前需要想到的幾個要點:
1,首先,要判斷輸入的年份是平年還是閏年,判斷閏年的條件是能被4整除且不能被100整除,或能 被400整除
這里,我寫了一個單獨的函數用來表示
圖2:判斷是否為閏年
2,第二,判斷完平年還是閏年之后,還需要得出每月的天數,需要注意,2月的天數和平年閏年有關系
這里我使用的是switch語句,也可以使用循環(huán)等獲取天數,2月的天數調用了前面判斷是否為閏年的方法
圖3:判斷每個月的天數
3,最后,在知道每個月的天數后,需要知道這個月的第一天從星期幾開始,這時就需要獲取每個月開始的星期數:(上個月的天數%7+上個月第一天的星期數)%7
這里第一個月的星期數是由用戶手動輸入獲取的,所以,第一個月的星期數,就是他本身,第二個月的星期數是前面一個月,也就是第一個月的星期數,用遞歸調用比較方便
圖4:獲取每個月第一天是星期幾
當我寫到這里的時候,我還沒考慮7天換行的問題,就只是看能不能在正確的位置輸出每個月的一號,于是開始寫main函數
此處,kl為我的類名,(注:類名首字母要大寫,不要像我一樣小寫),_代替空格
圖5:main函數內部實現
通過運行后,得出下圖所示的結果:
圖6:沒寫換行的運行結果
說實話,看到這個結果,著實嚇了一跳,隨即,我就發(fā)現,我沒寫換行,但是每個月的第一天所在星期數是正確的,還是竊喜了一小下
接下來就開始換行的操作
換行的話,就是每到周六就換行,Sun對應的值是0,Sat對應的是6,也就是說,要判斷當days為6時換行,就是判斷days為星期幾,我的思路是,當天的日期加上這個月開始的星期數余7就是當前日期的星期數,但是要注意,這個月開始的星期數是從0開始的,所以,總的來說:
當前日期的星期數= (當前日期+這個月開始的星期數-1)%7
圖7:判斷當前天數是星期幾
判斷完當前天數之后,就要在main函數里使用了,使用要
判斷當前天數是否為周6,進行換行:
將以下語句放在圖5的紅線出即可,在if條件里調用dWeak函數
圖8:判斷是否為周六
這樣就可以了,運行結果后,就會出現圖1的樣式
以上,是我在寫完之后的一些理解,如果有更好的方式歡迎告知(^w^)
最后,用一張圖片結束吧
總結
以上是生活随笔為你收集整理的java 显示日历_JAVA显示日历(已知年和该年第一天为星期几)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java clone 报错_创建Arra
- 下一篇: java按钮不显示中文_java - 按