你的位置:首页 > Java教程

[Java教程]Java万年历,输入年月获取改年月日历表

 1 //输入年份和月份,打印出这个月的日历表 2 /* 3   1.1900年1月1日是星期一 4   2.计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天 5     1) 6   3.总天数%7得出从星期几开始 7   注:计算机中的时间最小到1900年,此外UNIX系统认为1970年1月1日0点是时间纪元。 8   so,在本程序中不考了1900年以前的年份了。有兴趣的可以自己研究下。 9 */ 10 import java.util.Scanner; 11 class Calender{ 12  13   public static void main(String[] args){ 14      15     print(); 16  17   } 18  19   //打印输出 20   public static void print(){ 21     Scanner sc = new Scanner(System.in); 22     System.out.println("请输入年份:"); 23     int year = sc.nextInt(); 24     System.out.println("请输入月份(1~12):"); 25     int month = sc.nextInt(); 26  27     int days = getDays(year, month);//getDays方法详细请往下看 28     //days+1:day是总天数,输入月份的总天数只是这个月之前的天数, 29     //加上1变为这个月开始的第一天 30     int week = days%7==0?1:days%7+1;//开始的第一天是星期几 31     System.out.println("日\t一\t二\t三\t四\t五\t六"); 32      33     //输出第一行(第一个星期)空出来部分 34     for(int i=1; i<=week; i++){ 35       System.out.print(" \t"); 36     } 37  38     //输出第一行(第一个星期)各天 39     for(int i=1; i<=7-week; i++){ 40       System.out.print(i+"\t"); 41     } 42  43     System.out.println(); 44  45     //1~12月的个月天数 46     int monthDay = 0; 47     switch(month){ 48         case 2: 49           if(year%4==0&&year%100!=0 || year%400==0 ){ 50             monthDay=29; 51           }else{ 52             monthDay=28; 53           } 54           break; 55  56         case 4: 57         case 6: 58         case 9: 59         case 11: 60           monthDay=30; 61           break; 62  63         default : 64           monthDay=31; 65           break; 66       } 67  68     //输出剩下的日期,从第二周开始了,所以是8-week 69     for(int i=8-week; i<=monthDay; i++){ 70    71       System.out.print(i+"\t"); 72        73       //每七天换一行则当日期能整除7就换行 74       if((i+week)%7==0){ 75         System.out.println(); 76       } 77     } 78  79  80   } 81  82   /* 83     计算当年当月的距1900年1.1的总天数 84   */ 85   public static int getDays(int year, int month){ 86     //判断这年是闰年或者平年,得到年的总天数 87     int day1=0, day2=0; 88  89     for(int i=1900; i<year; i++){ 90       if(i%4==0&&i%100!=0 || i%400==0){ 91         day1+=366; 92       }else{ 93         day1+=365; 94       } 95     } 96    97     //得到月的总天数 98     for(int i=1; i<month; i++){ 99       switch(i){100         case 2:101           if(year%4==0&&year%100!=0 || year%400==0 ){102             day2+=29;103           }else{104             day2+=28;105           }106           break;107 108         case 4:109         case 6:110         case 9:111         case 11:112           day2+=30;113           break;114 115         default :116           day2+=31;117           break;118       }119     }120   121     return day1+day2;122 123   }124   125 }

 


四川旅游团购优惠深圳去四川旅游报价跟团去四川旅游多少钱几月去四川旅游最好去四川的旅游团价格贺州世外田园竹筏怎么收费?黄姚世外田园游船价格? 黄姚世外田园门票包含游船吗?贺州世外田园竹筏免费吗? 世外田园游玩需要坐船吗?黄姚世外田园游船多少钱? 品酒、看风景两不误,来这些拥有绝妙风景的酒吧[二] 2015深圳花灯去哪看?深圳花灯元宵节什么地方有? 2015世界之窗元宵节有什么好玩的?世界之窗元宵节活动介绍? 元宵节也是情人节 去天津过个浪漫的元宵节 2015珠海元宵节哪里好玩?珠海元宵节晚会有什么节目? 秋日漫步街头 大连八大地标建筑推荐 组图:天气微凉好个秋 安徽赏秋好时节 盘点南昌十大新地标 各有各的美 寻找那些海南也有的“异国”美景 十一国庆长假出境游免签的国家有哪些? 马尔代夫怎么选择岛屿 去泰国旅游需要什么证件? 去马来西亚购物好不好? IDT72V3641L20PF8 Datasheet IDT72V3641L20PF8 Datasheet IDT71V3558SA100BQG Datasheet IDT71V3558SA100BQG Datasheet IDT5V9352PFGI8 Datasheet IDT5V9352PFGI8 Datasheet 浙江去港澳四天三晚游 浙江去港澳四天三晚游 浙江去港澳四天三晚游 浙江去港澳三天两晚游 浙江去港澳三天两晚游 浙江去港澳三天两晚游 内蒙古去港澳五天四晚游 内蒙古去港澳五天四晚游 内蒙古去港澳五天四晚游