/**PageBeginHtml Block Begin **/ /***自定义返回顶部小火箭***/ /*生成博客目录的JS 开始*/ /*生成博客目录的JS 结束*/

打印 每一年度的日历及该日历每一周在该年度中属于第几周

package unitTest_code.test.Calendar;
/***
  *  打印 每一年度的日历及该日历每一周在该年度中属于第几周
  * 
  */
import java.util.Scanner;
public class Calendar {
     public static void main(String[] args) {
         Scanner input = new Scanner(System.in);
         System.out.println("请输入年份(1900——2099):");
         int year = input.nextInt();
         int Total = 0;//统计总天数
         final  String WeekHead="日\t一\t二\t三\t四\t五\t六";
         if(year>=1900&&year<=2099){
             boolean  isLeapYear = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? true : false;
             int[]aa=new int[isLeapYear?366:365];//创建数组
             //统计天数
             for (int i = 1900; i < year; i++) {
                 Total += ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) ? 366 : 365;
             }
             Total%=7;
             //将星期几存入数组中,每一天都对应了星期几
             for (int i = 0; i <aa.length ; i++,Total++) {
                 Total%=7;
                 aa[i]=Total;
             }
             // 输出每个月的日历
             int count=0;
             int weekCount=0;
             for (int i = 1; i <=12 ; i++) {
                 System.out.println("\n"+year+"年"+i+"月");
                 System.out.println(WeekHead);
                
                 int maxday = 31;
                 switch (i){//判断月份的最大天数
                     case 2:
                         maxday = isLeapYear?29:28;
                         break;
                     case 4:case 6:case 9:case 11:
                         maxday =30;
                         break;
                 }
                 for (int j = 0; j <=aa[count] ; j++) {
                     if((aa[count]+1)%7==0)
                         break;
                     else{
                         System.out.print("\t");
                       
                     }
                 }
                 for (int j = 1; j <=maxday ; j++) {
                         System.out.print(j +"\t");
                     if((aa[count]+1+j)%7==0&&j!=maxday){
                         weekCount++;
                         System.out.println(  "第"+weekCount+"周");
                     }
                 }
                 count+=maxday;
             }
         }else {
             System.out.println("年份输入有误,请重试");
         }
     }
}



请输入年份(1900——2099):
2020

2020年1月
日    一    二    三    四    五    六
             1    2    3    4    第1周
5    6    7    8    9    10    11    第2周
12    13    14    15    16    17    18    第3周
19    20    21    22    23    24    25    第4周
26    27    28    29    30    31   
2020年2月
日    一    二    三    四    五    六
                         1    第5周
2    3    4    5    6    7    8    第6周
9    10    11    12    13    14    15    第7周
16    17    18    19    20    21    22    第8周
23    24    25    26    27    28    29   
2020年3月
日    一    二    三    四    五    六
1    2    3    4    5    6    7    第9周
8    9    10    11    12    13    14    第10周
15    16    17    18    19    20    21    第11周
22    23    24    25    26    27    28    第12周
29    30    31   
2020年4月
日    一    二    三    四    五    六
             1    2    3    4    第13周
5    6    7    8    9    10    11    第14周
12    13    14    15    16    17    18    第15周
19    20    21    22    23    24    25    第16周
26    27    28    29    30   
2020年5月
日    一    二    三    四    五    六
                     1    2    第17周
3    4    5    6    7    8    9    第18周
10    11    12    13    14    15    16    第19周
17    18    19    20    21    22    23    第20周
24    25    26    27    28    29    30    第21周
31   
2020年6月
日    一    二    三    四    五    六
     1    2    3    4    5    6    第22周
7    8    9    10    11    12    13    第23周
14    15    16    17    18    19    20    第24周
21    22    23    24    25    26    27    第25周
28    29    30   
2020年7月
日    一    二    三    四    五    六
             1    2    3    4    第26周
5    6    7    8    9    10    11    第27周
12    13    14    15    16    17    18    第28周
19    20    21    22    23    24    25    第29周
26    27    28    29    30    31   
2020年8月
日    一    二    三    四    五    六
                         1    第30周
2    3    4    5    6    7    8    第31周
9    10    11    12    13    14    15    第32周
16    17    18    19    20    21    22    第33周
23    24    25    26    27    28    29    第34周
30    31   
2020年9月
日    一    二    三    四    五    六
         1    2    3    4    5    第35周
6    7    8    9    10    11    12    第36周
13    14    15    16    17    18    19    第37周
20    21    22    23    24    25    26    第38周
27    28    29    30   
2020年10月
日    一    二    三    四    五    六
                 1    2    3    第39周
4    5    6    7    8    9    10    第40周
11    12    13    14    15    16    17    第41周
18    19    20    21    22    23    24    第42周
25    26    27    28    29    30    31   
2020年11月
日    一    二    三    四    五    六
1    2    3    4    5    6    7    第43周
8    9    10    11    12    13    14    第44周
15    16    17    18    19    20    21    第45周
22    23    24    25    26    27    28    第46周
29    30   
2020年12月
日    一    二    三    四    五    六
         1    2    3    4    5    第47周
6    7    8    9    10    11    12    第48周
13    14    15    16    17    18    19    第49周
20    21    22    23    24    25    26    第50周
27    28    29    30    31   

posted @ 2020-08-17 10:49  一品堂.技术学习笔记  阅读(233)  评论(0编辑  收藏  举报