万年历

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了万年历相关的知识,希望对你有一定的参考价值。

打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一),要求:

(1)编写一个方法判断闰年;

(2)编写一个方法判断某年某月有多少天;

(3)编写一个方法计算某年某月前距离1900年1月1日的总天数;(4)编写一个输出某年某月日历的方法;

(5)编写一个测试方法。


package test2; import java.util.*; public class Calendar { public static void main(String[] args){ Mainmenu(); } public static int Mainmenu(){ Scanner in = new Scanner(System.in);//使用Sanner类定义对象 int flag1 = 1 ; while(flag1 == 1 ) { System.out.println("\n菜单"); System.out.println("1.使用万年历"); System.out.println("2.退出万年历"); int i = in.nextInt(); switch(i){ case 1: Menu(); break; default: exit(); return 1; } } return 1; } public static int Menu(){ Scanner in = new Scanner(System.in);//使用Sanner类定义对象 System.out.println("使用万年历"); System.out.println("1.输出某年某月日历"); System.out.println("2.返回"); int i = in.nextInt(); switch(i){ case 1: System.out.print("请输入要输出日历所在年月(例:201709):"); int year_month = in.nextInt(); int year = year_month / 100 ; int month = year_month % 100 ; printcalendar( year , month); return 1; default: return 1; } } public static int intercalarly_year( int year ){ if( year % 4 == 0){ if( year%100==0){ if( year%400==0) return 1; else return -1; } else return 1; } else return -1; } public static int days_year( int year){ return intercalarly_year(year)==1?366:365; } public static int days_month( int year , int month ){ return month==2?(intercalarly_year(year)==1?29:28):( (month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12) ? 31 : 30 ); } //某年某月前距离1900年1月1日的总天数 public static int count_days(int year , int month ){ int num = 0 ; for(int y = 1900 ; y < year ; y++) num += days_year( y ); for(int m = 1 ; m < month ; m++) num += days_month( year , m ); return num; } //某年某月一号为周几 public static int weekday( int year , int month ){ int week = count_days( year , month ) % 7 + 1 ; return week; } public static void printcalendar(int year ,int month){ int w = weekday( year , month ) ;//1号为周几 int m = days_month( year , month ) ; for( int i = 0 ; i < w ; i++) System.out.print("\t"); for( int j = 1 ; j <=m ; j++){ int k = ( j + w ) % 7 ; if(k==0) System.out.println(j+"\t"); else System.out.print(j+"\t"); } } public static void exit(){ System.out.println("谢谢使用,再见!"); } };

  

 

以上是关于万年历的主要内容,如果未能解决你的问题,请参考以下文章

算法,java代码实现打印万年历

知识类API调用的代码示例合集:驾考题库ISBN书号查询万年历查询等

STC89c52实现万年历

STC89c52实现万年历

TM32的电子钟万年历LCD1602的Proteus仿真 (代码+仿真+原理图+PCB+参考报告)

前端:运用js制作一个万年历程序