🎐编写思路:
1.根据手机或日常生活中的日历,再脑子中构思出日历的大概摸样。
2.思考代码如何编写,要使用哪一个中时间类进行编写。
3.开始是实操。
🎐程序设计:
🎯重点分析:
System.out.print("请输入你要查询日历的年份:"); int year=scan.nextInt(); System.out.println(year+"年日历如下:");
给用户提示,请输入要查询日历的年份,并用int变量year保存其值,用于后续操作。
LocalDate date=LocalDate.of(year,month,1);//设定每月的第一天 System.out.println("========"+year+"年"+month+"月========="); System.out.println(" 日 一 二 三 四 五 六 ");
用date保存每个月的第一天,然后对每个月的基本格式进行输出。
int dayofweek=date.getDayOfWeek().getValue();//得出每周都第一天是几 for(int i=1;i<dayofweek;i++) { System.out.print(" ");//在每月第一天前的用空格代替 }
用dayofweek保存这个月的第一天在是这个月的周几(周日所对应数字为1,以此类推)。并用空格对前面的日期进行填充。
for(int day=1;day<=date.lengthOfMonth();day++) { if(day<10) { System.out.print(" ");//单位数前面加空格 } System.out.print(day); System.out.print(" "); if((dayofweek+day-1)%7==0)//满七换行 System.out.println(); }
从第一天开始,满七天换行一次。
🎯完整代码:
Scanner scan=new Scanner(System.in); System.out.print("请输入你要查询日历的年份:"); int year=scan.nextInt(); System.out.println(year+"年日历如下:"); for(int month=1;month<=12;month++) { LocalDate date=LocalDate.of(year,month,1);//设定每月的第一天 System.out.println("========"+year+"年"+month+"月========="); System.out.println(" 日 一 二 三 四 五 六 "); int dayofweek=date.getDayOfWeek().getValue();//得出每周都第一天是几 for(int i=1;i<dayofweek;i++) { System.out.print(" ");//在每月第一天前的用空格代替 } for(int day=1;day<=date.lengthOfMonth();day++) { if(day<10) { System.out.print(" ");//单位数前面加空格 } System.out.print(day); System.out.print(" "); if((dayofweek+day-1)%7==0)//满七换行 System.out.println(); } System.out.println(); }