admin管理员组

文章数量:1794759

万年历(Java版)完整代码

万年历(Java版)完整代码

前言

上篇讲了思路,这篇是代码实现以及效果展示。

代码实现 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(); } } } } 效果展示

思路解析:blog.csdn/qq_45871809/article/details/118299169

本文标签: 万年历完整代码java