1 //----------------------------------日历表
2
3
4 import java.util.*;
5 import java.text.*;
6
7 class Menology
8 {
9 //----------------计算当前日期距离1900的天数
10 public long lastDays(String startDay,String seachDay){
11
12 long lastDays = 0;
13 SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM");
14 try{
15
16 Date STD = SDF.parse(startDay);
17 Date SED = SDF.parse(seachDay);
18 lastDays = (SED.getTime() - STD.getTime()) / (24*60*60*1000);
19 }catch (ParseException pe){
20
21 pe.printStackTrace();
22 }
23 return lastDays;
24 }
25
26 //------------------确定每个月的天数
27
28
29 //--------------------------打印日历表的格式
30 public void MenologyTab(long week , int day){
31
32 System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
33
34 //-------日期天数计数
35 int number = 0;
36 for(int i = 0; i < 36; i++){
37
38 if (i % 7 == 0 && i != 0){
39
40 System.out.println();
41 }
42
43 // 大于返回的日期后num计数,打印整月天数排版
44 if(i >= (int)week && i < day + (int)week){
45
46 number++;
47 System.out.print(number + "\t");
48 }else {
49
50 System.out.print("(>_<)\t");
51 }
52 }
53 }
54
55
56 //计算每个月的天数
57 public int mounth(String mouth,String year){
58
59 if(mouth.equals("1") || mouth.equals("3") || mouth.equals("5") || mouth.equals("7") || mouth.equals("8") || mouth.equals("10") || mouth.equals("12")){
60
61 return 31;
62 }else if(mouth.equals("4") || mouth.equals("6") || mouth.equals("9") || mouth.equals("11")){
63
64 return 30;
65 }else if(mouth.equals("2")){
66
67 //------计算平年闰年
68 int years = Integer.parseInt(year);
69 if ((years % 4 == 0 && years % 100 != 0) || years % 400 == 0){
70
71 return 29;
72 }else{
73
74 return 28;
75 }
76 }
77 return 0;
78 }
79 }
80
81 class Dater
82 {
83 public static void main(String[] args)
84 {
85 //-----日历管理对象
86 Menology menology = new Menology();
87
88 System.out.println("\n*******************************");
89 System.out.println("**********日历表查询***********");
90 System.out.println("*******************************\n");
91 System.out.println("请输入你要查询的日期:");
92 System.out.println("--------------------------------------------------------");
93 Scanner keyInput = new Scanner(System.in);
94 String keyDate = keyInput.next();
95
96 //-----取出年份
97 String year = keyDate.substring(0,4);
98
99 //------取出月份
100 String mouth = keyDate.substring(5);
101 menology.mounth(mouth,year);
102
103 //------计算天数
104 long Times = menology.lastDays("1900-1",keyDate);
105 System.out.println("--------------------------------------------------------");
106
107 //-----传参进打印表格的方法
108 menology.MenologyTab(Times % 7 + 1,menology.mounth(mouth,year));
109 }
110 }