Java 小日历格式输出 闰年计算

来源:互联网 发布:美国黑人比例 知乎 编辑:程序博客网 时间:2024/06/02 16:40
2010-04-26 22:36


import java.util.Scanner;
public class _calendar {
public static void main(String[] args) {
   // TODO Auto-generated method stub
   System.out.println("请输入年份:");
   Scanner sc = new Scanner(System.in);
   int year = sc.nextInt();
   if (year < 1900) {
    System.out.println("请输入大于1900年的年份:");
    year = sc.nextInt();
   }
   System.out.println("请输入月份:");
   int month = sc.nextInt();
   if (month < 0 || month > 12) {
    System.out.println("请输入正确月份(1-12):");
    month = sc.nextInt();
   }
   System.out.println("年份:" + year + ",月份:" + month);

   /* 判断是否是闰年 */
   boolean y = run_count(year);
   System.out.println();
   /*
   * if((year%4==0)&&(year%100!=0)||(year%400==0)) {
   * System.out.println("该年份是闰年!"); y=true; } else { y=false;
   * System.out.println("该年份不是闰年!"); }
   */

   /* 计算输入月份的天数 */
   int day;
   day = day_count(y, month);
   /*
   * { if((y==true)&&(month==2)) { day=29;
   * System.out.println("该年月份下,月份:"+day+"天"); } else
   * if((y==false)&&(month==2)) { day=28;
   * System.out.println("该年月份下,月份:"+day+"天"); } else
   * if((month==4)||(month==6)||(month==9)||(month==11)) { day=30;
   * System.out.println("该年月份下,月份:"+day+"天"); } else {day=31;
   * System.out.println("该年月份下,月份:"+day+"天");}}
   */

   /* 计算该月第一天是星期几 */
   /* 1、计算输入年份距离1900年1月1日的天数 */
   int run = 0;// 输入年份距1900之间有多少闰年
   for (int x = 1900; x < year; x++) {
    if (run_count(x) == true)
     run++;
   }
   int day_1 = run * 366 + (year - 1900 - run) * 365;// 俩年之间天数
   System.out.println("该二年之间闰年数:" + run);

   /* 2、计算输入月份之前的天数(从当年年初开始) */
   int day_2 = 0;// 改年初到该月天数
   int i = month - 1;
   while (i >= 1) {
    day_2 += day_count(y, i);
    i--;
   }
   /* 3、求和 */
   int days = day_1 + day_2;
   System.out.println("总天数:" + days);
   int week_day = 1 + days % 7;
   System.out.println("星期几:" + week_day);
   /* 实现日历--简单试试 */
   System.out.println("********************欢迎使用万年历*********************");
   System.out.println("/n年份:" + year + ",月份:" + month);
   System.out.print("/n/n星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六/n");
   int k = 0;
   for (int j = 0; j < week_day % 7; j++)// 刚开始未%除有漏洞,注意
   {
    k++;
    System.out.print("/t");
   }
   for (int a = 1; a <= day; a++) { // if(k==7)
            // {k=0;System.out.println();}
    System.out.print(a + "/t");
    k++;
    if (k == 7) {
     k = 0;
     System.out.println();
    }
   }
   System.out.println();
}

public static int day_count(boolean y, int m) {
   if ((y == true) && (m == 2))
    return 29;
   else if ((y == false) && (m == 2))
    return 28;
   else if ((m == 4) || (m == 6) || (m == 9) || (m == 11))
    return 30;
   else
    return 31;
}

public static boolean run_count(int ye) {
   if ((ye % 4 == 0) && (ye % 100 != 0) || (ye % 400 == 0)) {
    System.out.println(ye + "年份是闰年!");
    return true;
   } else {
    System.out.println(ye + "年份不是闰年!");
    return false;
   }
}

}

原创粉丝点击