码迷,mamicode.com
首页 > 其他好文 > 详细

万年历

时间:2017-09-26 22:23:07      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:util   某月   int()   计算   inter   system.in   efault   pre   package   

打印万年历(输入年份,月份,输出该月的日历,已知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("谢谢使用,再见!"); } };

  

 

万年历

标签:util   某月   int()   计算   inter   system.in   efault   pre   package   

原文地址:http://www.cnblogs.com/yangking/p/7598961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!