https://blog.csdn.net/qq_45871809/article/details/118299667
package sign_test; import java.util.Scanner; public class WanNianLi { public static void main(String[] args) { Scanner input = new Scanner(System.in); int year;// 定义年份 int month;// 定义月份 boolean isRunNian;// 判断是否为闰年 int days = 0;// 月份的天数 int totalDays = 0;// 从1900年到输入年份的总天数 System.out.println("************************万年历************************"); System.out.println("请输入年份:"); year = input.nextInt(); System.out.println("请输入月份:"); month = input.nextInt(); // 判断是否为闰年 // 闰年:普通闰年(能被4整除,但不能被100整除)、世纪闰年(能被400整除) if (((year % 4 == 0 && year % 100 != 0)) || (year % 400 == 0)) { isRunNian = true; System.out.println(year + "年是闰年"); } else { isRunNian = false; System.out.println(year + "年不是闰年"); } // 遍历出从1900年到输入年份的总天数 // 平年365天,闰年366天 for (int i = 1900; i < year; i++) { // 判断年份i是否为闰年 if (((i % 4 == 0 && i % 100 != 0)) || (i % 400 == 0)) { // 闰年366天 totalDays += 366; } else { // 平年365天 totalDays += 365; } } // 循环累计月份的天数 // 遍历月份i的天数 for (int i = 1; i <= month; i++) { // 判断月份i的天数 switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: // 二月分闰月和平月 if (isRunNian) { days = 29; } else { days = 28; } break; case 4: case 6: case 9: case 11: days = 30; break; default: System.out.println("输入信息有误!"); ; break; } // 将switch判断出月份的天数加到总天数里 if (i != month) { totalDays += days; } } System.out.println("日\t一\t二\t三\t四\t五\t六"); // 将具体的时间遍历出来 // 遍历之前先求出\t int beforeDays;// 日期前面的\t beforeDays = totalDays % 7 + 1; if (beforeDays == 7) { beforeDays = 0;// 前面无空格,即为星期天 } // 遍历时间,先打印日期前面的\t for (int i = 0; i < beforeDays; i++) { System.out.print("\t"); } // 打印日期 for (int i = 1; i <= days; i++) { System.out.print(i + "\t"); // 满七个换行 // 日期前的\t+遍历到的日期=7,就换行 if ((beforeDays + i) % 7 == 0) { System.out.println(); } } } }
标签:Java,万年历,闰年,int,System,year,println,out From: https://www.cnblogs.com/linus-tan/p/17000640.html