大家好,欢迎来到IT知识分享网。
格式如下:
————2024年1月———–
一 二 三 四 五 六 日
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
一 二 三 四 五 六 日
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29
…
————2024年12月———–
一 二 三 四 五 六 日
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个合法的年份:"); int year = sc.nextInt(); //1、先判断该年的第一天是星期几 int dayOfWeek = 5; //以 2021-01-01 为星期五作为参照 if(year < 2021) { for(int i = 2020;i >= year;i--) { if(i % 400 == 0 || (i % 100 != 0 && i % 4 == 0)) { dayOfWeek = (dayOfWeek + 7 - 366 % 7) % 7; } else { dayOfWeek = (dayOfWeek + 7 - 365 % 7) % 7; } } } if(year > 2021) { for(int i = 2021;i < year;i++) { if(i % 400 == 0 || (i % 100 != 0 && i % 4 == 0)) { dayOfWeek = (dayOfWeek + 366 % 7) % 7; } else { dayOfWeek = (dayOfWeek + 365 % 7) % 7; } } } //轮流输出12 个月 for(int i = 1;i <= 12;i++) { System.out.println("---------" + year + "年" + i + "月---------"); System.out.println("一 二 三 四 五 六 日"); for(int j = 0;j < dayOfWeek - 1;j++) { System.out.print("\t"); } switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: for(int j = 1;j <= 31;j++) { //j 表示几号 if(dayOfWeek == 7) { System.out.print(j + "\t"); System.out.println(); } else { System.out.print(j + "\t"); } //没输出一天使得下一天对应的 dayOfWeek + 1 dayOfWeek++; dayOfWeek = dayOfWeek % 7 == 0 ? 7 : dayOfWeek % 7; } break; case 2: if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) { for(int j = 1;j <= 29;j++) { //j 表示几号 if(dayOfWeek == 7) { System.out.print(j + "\t"); System.out.println(); } else { System.out.print(j + "\t"); } //没输出一天使得下一天对应的 dayOfWeek + 1 dayOfWeek++; dayOfWeek = dayOfWeek % 7 == 0 ? 7 : dayOfWeek % 7; } } else { for(int j = 1;j <= 28;j++) { //j 表示几号 if(dayOfWeek == 7) { System.out.print(j + "\t"); System.out.println(); } else { System.out.print(j + "\t"); } //没输出一天使得下一天对应的 dayOfWeek + 1 dayOfWeek++; dayOfWeek = dayOfWeek % 7 == 0 ? 7 : dayOfWeek % 7; } } break; case 4: case 6: case 9: case 11: for(int j = 1;j <= 30;j++) { //j 表示几号 if(dayOfWeek == 7) { System.out.print(j + "\t"); System.out.println(); } else { System.out.print(j + "\t"); } //没输出一天使得下一天对应的 dayOfWeek + 1 dayOfWeek++; dayOfWeek = dayOfWeek % 7 == 0 ? 7 : dayOfWeek % 7; } break; default: break; } System.out.println("\r\n"); } } }
效果展示:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/147542.html