简单的日历程序,输入年份和月份打印出日历

/**
 * 
 */
package package_02;

/**
 * @author 周雪飞_15K
 * @date 2015年9月9日
 */
public class FindWeek {

 public int findWeek_Day1(int year, int month) {// 查询所在年之前有多少天
  int week_day;
  int sumday = 0;
  for (int i = 1; i < year; i++) {// year年之前瑞年有几年
   if ((i % 100 != 0 && i % 4 == 0) || (i % 400 == 0))
    sumday += 1;
  }
  sumday = (year - sumday - 1) * 365 + sumday * 366;// year年之前有多少天

  for (int i = 1; i < month; i++) {
   if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
    sumday += 31;
   if (i == 4 || i == 6 || i == 9 || i == 11)
    sumday += 30;
   if (i == 2) {
    if ((year % 100 != 0 && year % 4 == 0) || (year % 400 == 0)) // year年是不是瑞年,是则二月加一天
     sumday += 29;
    else
     sumday += 28;
   }
  }
  week_day = sumday % 7;
  week_day = week_day + 1;
  return week_day;

 }

 public int findWeek_Day(int year, int month) {// 查询所在年之前有多少天
  int week_day;
  int sumday = 0;
  for (int i = 1; i < year; i++) {// year年之前瑞年有几年
   if ((i % 100 != 0 && i % 4 == 0) || (i % 400 == 0))
    sumday += 1;
  }
  sumday = (year - sumday - 1) * 365 + sumday * 366;// year年之前有多少天

  for (int i = 1; i < month; i++) {
   if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
    sumday += 31;
   if (i == 4 || i == 6 || i == 9 || i == 11)
    sumday += 30;
   if (i == 2) {
    if ((year % 100 != 0 && year % 4 == 0) || (year % 400 == 0)) // year年是不是瑞年,是则二月加一天
     sumday += 29;
    else
     sumday += 28;
   }
  }
  week_day = sumday % 7;
  week_day = week_day + 1;
  if (week_day == 7)
   week_day = 0;
  return week_day;

 }

 public int findMonth_Day(int year, int month) {
  int month_day = 15;
  if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
   month_day = 31;
  if (month == 4 || month == 6 || month == 9 || month == 11)
   month_day = 30;
  if (month == 2) {
   if ((year % 100 != 0 && year % 4 == 0) || (year % 400 == 0)) // year年是不是瑞年
    month_day = 29;
   else
    month_day = 28;
  }
  return month_day;
 }
}


 

/**
 * 
 */
package package_02;

/**
 * @author 周雪飞_15K
 * @date 2015年9月9日
 */
public class PrintCalendar {
 public void print1(int month_day, int week_day) { // 打印月份
  int day;
  System.out.println("一" + "\t" + "二" + "\t" + "三" + "\t" + "四" + "\t" + "五" + "\t" + "六" + "\t" + "日");
  day = 1;
  for (int j = 1; j < week_day + month_day; j++) {
   if (day == 1 && j < week_day) {
    for (int h = 1; h < week_day; h++)
     System.out.print("\t");
    j = week_day;
   }
   if (j % 7 == 0) {
    System.out.print(day);
    System.out.println();
    day++;
    continue;
   }
   System.out.print(day + "\t");
   day++;
  }
  System.out.println();

 }

 public void print(int month_day, int week_day) { // 打印月份
  int day;
  System.out.println("日" + "\t" + "一" + "\t" + "二" + "\t" + "三" + "\t" + "四" + "\t" + "五" + "\t" + "六");
  day = 1;
  for (int j = 0; j < week_day + month_day; j++) {
   if (day == 1 && j < week_day) {
    for (int h = 0; h < week_day; h++)
     System.out.print("\t");
    j = week_day;
   }
   if ((j + 1) % 7 == 0) {
    System.out.print(day);
    System.out.println();
    day++;
    continue;
   }
   System.out.print(day + "\t");
   day++;
  }
  System.out.println();
 }
}


 

 

/**
 * 
 */
package package_02;

import java.util.Scanner;

/**
 * @author 周雪飞_15K
 * @date 2015年9月8日
 */
public class TextCalendar {

 public static void main(String[] args) {
  FindWeek findWeek = new FindWeek();
  PrintCalendar printCalendar = new PrintCalendar();
  while (true) {
   Scanner scanner = new Scanner(System.in);
   System.out.println("请输入年份:");
   int year = scanner.nextInt();
   System.out.println("请输入月份:");
   int month = scanner.nextInt();
   int week_day = findWeek.findWeek_Day(year, month);
   int month_day = findWeek.findMonth_Day(year, month);
   System.out.println("第一种");
   printCalendar.print(month_day, week_day);
   int week_day1 = findWeek.findWeek_Day1(year, month);
   int month_day1 = findWeek.findMonth_Day(year, month);
   System.out.println("第二种");
   printCalendar.print1(month_day1, week_day1);
  }
 }
}


 


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值