码迷,mamicode.com
首页 > 编程语言 > 详细

【常用】Java万年历代码

时间:2015-08-09 00:14:54      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

  1 package com.bdqn.test1;
  2 
  3 import java.util.Scanner;
  4 
  5 public class WanNianLi {
  6     
  7     Scanner input = new Scanner(System.in);
  8     int year ;//年份
  9     int month;//月份
 10     int days = 31;//默认31天,所以判断时直接除了4,6,9,11,2,
 11     
 12     /*
 13      * 显示菜单
 14      */
 15     public void menu(){
 16         System.out.println("请输入年");
 17         year = input.nextInt();
 18         System.out.println("请输入月份");
 19         month = input.nextInt();
 20         
 21         switch (month) {
 22             case 4:
 23             case 6:
 24             case 9:
 25             case 11:
 26                 days = 30;
 27                 break;
 28             case 2:
 29                 // 如果 年能被4整除 但不能被100 整除 + 年被400整除
 30                 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
 31                     days = 29;
 32                     break;
 33                 } else {
 34                     days = 28;
 35                 }
 36                 break;
 37             default:
 38                 days = 31;
 39         }
 40         show();
 41     }
 42     
 43     public void  show(){
 44         // 1900-1-1 星期一 1900-1-9(规定)
 45         String[] weeks = { "", "", "", "", "", "", "" };
 46         for (int i = 0; i < weeks.length; i++) {
 47             System.out.print(weeks[i] + "\t");
 48         }
 49         System.out.println("\n==================================");
 50         int chaDays = 0;
 51         for (int i = 1900; i < year; i++) {
 52             if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
 53                 chaDays += 366;// 闰年366天
 54                 continue;
 55             }
 56             chaDays += 365;
 57         }
 58         //上面方法计算出从1900年1月1日到输入的年,下面方法为把输入的月加上
 59         //上一个for加完chaDays,下面的for循环继续在chaDays上累加
 60         //这里注意是for循环的把每个月的累加上
 61         for (int i = 1; i < month; i++) {
 62             switch (i) {
 63             case 1:
 64             case 3:
 65             case 5:
 66             case 7:
 67             case 8:
 68             case 10:
 69             case 12:
 70                 chaDays += 31;
 71                 break;
 72             case 4:
 73             case 6:
 74             case 9:
 75             case 11:
 76                 chaDays += 30;
 77                 break;
 78             case 2:
 79                 // 如果 年能被4整除 但不能被100 整除 + 年被400整除
 80                 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
 81                     chaDays += 29;
 82                 } else {
 83                     chaDays += 28;
 84                 }
 85                 break;
 86             }
 87         }
 88         
 89         
 90 //         System.out.println("差的天数为:" + chaDays);
 91         
 92         int weekOfDay = (chaDays +1) % 7;//加一的原因是周日为数组中的第一个
 93 //        System.out.println(weekOfDay);
 94         for (int i = 0; i < weekOfDay; i++) {
 95             System.out.print("\t");//空格补位
 96         }
 97         for (int i = 1; i <= days; i++) {
 98             System.out.print(i + "\t");
 99             if ((i + weekOfDay) % 7 == 0) {//每一行 七个就换行
100                 System.out.println();
101             }
102         }
103     
104     }
105     public static void main(String[] args) {
106         
107         WanNianLi wNianLi=new WanNianLi();
108         wNianLi.menu();
109         
110         
111     }
112 }

 

【常用】Java万年历代码

标签:

原文地址:http://www.cnblogs.com/yuruolt/p/4714123.html

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