PrintCalendar

package calendar;

import java.util.Scanner;

public class PrintCalendar
{
/**
  * @param args
  */

public static void main(String[] args) {
  System.out.println(
"******************欢 迎 使 用 万 年 历******************");
  Scanner input = new Scanner(System.in);
  System.out.print(
"请选择年份: ");
  int year = input.nextInt();
  System.out.print(
"请选择月份: ");
  int month = input.nextInt();
  System.out.println();

  int days = 0;
// 存储当月的天数
  boolean isRn;
  
/* 判断是否是闰年 */
  if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) {
// 判断是否为闰年
   isRn = true;
// 闰年
  } else {
   isRn = false;
// 平年
  }

  
/* 计算输入的年份之前的天数 */
  int totalDays = 0;
  for (int i = 1900; i < year; i++) {
  
/* 判断闰年或平年,并进行天数累加 */
   if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) {
// 判断是否为闰年
    totalDays = totalDays + 366;
// 闰年366天
   } else {
    totalDays = totalDays + 365;
// 平年365天
   }
  }

  
/* 计算输入月份之前的天数 */
  int beforeDays = 0;
  for (int i = 1; i <= month; i++) {
   switch (i) {
     case 1:
     case 3:
     case 5:
     case 7:
     case 8:
     case 10:
     case 12:
    days = 31;
    break;
     case 2:
    if (isRn) {
     days = 29;
    } else {
     days = 28;
    }
    break;
     default:
    days = 30;
    break;
   }
   if (i < month) {
    beforeDays = beforeDays + days;
   }
  }
  totalDays = totalDays + beforeDays;
// 距离1900年1月1日的天数

  
/* 计算星期几 */
  int firstDayOfMonth;
// 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6
  int temp = 1 + totalDays % 7;
// 从1900年1月1日推算
  if (temp == 7) {
// 求当月第一天
   firstDayOfMonth = 0;
// 周日
  } else {
   firstDayOfMonth = temp;
  }

  
/* 输出日历 */
  System.out.println(
"星期日 星期一 星期二 星期三 星期四 星期五 星期六");
  for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++) {
   System.out.print(
" "); // 输出空格
  }
  for (int i = 1; i <= days; i++) {
   System.out.print(i +
" ");
   if ((totalDays + i - 1) % 7 == 5) {
// 如果当天为周六,输出换行
    System.out.println();
   }
  }
}
}


lunzi   2009-02-10 10:01:15 评论:0   阅读:395   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog