"景先生毕设|www.jxszl.com

JAVA万年历编写

2023-09-12 15:40编辑: www.jxszl.com景先生毕设

          输出任意年份任意月份的日历表

思路:

1.已知1年1月1日是星期日,1 % 7 = 1 对应的是星期日,2 % 7 = 2 对应的是星期一,以此类推;

2.计算当年以前所有天数+当年当月1号之前所有天数;

a.年份分平年闰年,平年365天,闰年366天;

b.闰年的判断方法year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)若为真,则为闰年否则为平年;

c.定义平年/闰年数组,包含各月天数;

d.遍历数组求和,计算当年当月前总天数;

e.当年以前所有天数+当年当月前总天数+1即为1年1月1日到当年当月1日的总天数;

3.总天数对7取模,根据结果判断当月1号是星期几,输出空白区域;

4.输出当月日历表,逢星期六换行

java.util.Scanner;

     static                  );

int//年份

if1 "输入错误!"             "请输入月份:"        month = sc.nextInt();                    (month < || month > //判断非法输入月份

System.out.println( ;

}

//输出表头

System.out.println(+ year + + month +  "日  一  二  三  四  五  六" 

//计算当前年份以前所有天数beforeYearTotalDay;每4年一个闰年,闰年366天,平年365天

int1 ) + (year-- ((year - 4;

int,29,31,31,30};            0,31,30,30,31  ;                                            (year % == || (year % != && year % == //判断当前年份是否是闰年

forint0//for循环计算当月之前总天数

//计算当前月份之前的所有天数

beforeMonthTotalDay = beforeMonthTotalDay + arrLeapYear[i];

}

//判断当月1日是星期几

int1            week = totalDay % //已知1年1月1日是星期日,即模7得1对应的是星期日

forint017  "    "     "  "                (i < ) {                            );

}

if77)) % ) || i == arrLeapYear[month]) {                                                 

{                    (i = ; i < month ; i ++ ) {                                                        totalDay = beforeYearTotalDay + beforeMonthTotalDay +   ;            (i = ; i < (week - 7//如果写成i < (week-1)会出现i<-1的情况

System.out.print(//输出开头空白

}

forint1//for循环输出各月天数

System.out.print(i +     " "                                (i % == ((1  <span style='\"background:' 0px;="" none;="" 0);="" 0,="" rgb(0,="" 0pt;="" 245);="" 245,="" rgb(245,="" normal;\"="" 9.5pt;="" monaco;="">}

JAVA万年历编写 输出效果图:


原文链接:http://www.jxszl.com/biancheng/JAVA/446480.html