万年历(gregoriansolarcalendarandchineselunarcalendar)我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。
方法/步骤
1、首先打开eclipse
2、新建一个java项目,名字随意起
3、名字起好后,点击完成
4、右键点击项目名称,新建,类
5、类的名字叫TextControl包的名字叫com.zf.s2点击完成
6、创建一个包。导入输入输出流类packagecom.zf.s2;//创建一个包importjava.io.*;
7、操作打印任一年日历的类publicclassTextCo艘绒庳焰ntrol{staticintyear,monthDay,臃扮哀坷weekDay;//定义静态变量,以便其它类调用publicstaticbooleanisLeapYear(inty){//判断是否是闰年return((y%4==0&&y%100!=0)||(y%400==0));}publicstaticintfirstDay(inty){//计算该年第一天是星期几longn=y*365;for(inti=1;i<y;i++)if(isLeapYear(i))//判断是否是闰年n+=1;return(int)n%7;}
8、打印标题publicstaticvoidprintWeek(){//打印标头System.out.println("===========================");System.out.println("日一二三四五六");}
9、获取每个月的天数publicstaticintgetMonthDay(intm){switch(m){case1:case3:case5:case7:case8:case10:case12:return31;case4:case6:case9:case11:return30;case2:if(isLeapYear(year))//判断是否是闰年return29;elsereturn28;default:return0;}}
10、分别按不同条件逐月打印publicstati罕铞泱殳cvoidprintMonth(){for(int惺绅寨瞀m=1;m<=12;m++)//循环月份{System.out.println(m+"月");printWeek();for(intj=1;j<=weekDay;j++){//按每个月第一天是星期几打印相应的空格System.out.print("");}intmonthDay=getMonthDay(m);//获取每个月的天数for(intd=1;d<=monthDay;d++){if(d<10)//以下4行对输出格式化System.out.print(d+"");elseSystem.out.print(d+"");weekDay=(weekDay+1)%7;//每打印一天后,反应第二天是星期几if(weekDay==0)//如果第二天是星期天,便换行。System.out.println();}System.out.println('\n');}}
11、java程序的主入口处圬桦孰礅publicstaticvoidmain(String[]args)throwsIOExcept足毂忍珩ion{System.out.print("请输入一个年份:");InputStreamReaderir;//以下接受从控制台输入BufferedReaderin;ir=newInputStreamReader(System.in);in=newBufferedReader(ir);Strings=in.readLine();year=Integer.parseInt(s);weekDay=firstDay(year);//计算该年第一天是星期几System.out.println("\n"+year+"年");printMonth();}}
12、运行结果