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("星期日 星期一 星期二 星期三 星期四 星期五 星期六"); 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 + " "); 48 }else { 49 50 System.out.print("(>_<) "); 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(" *******************************"); 89 System.out.println("**********日历表查询***********"); 90 System.out.println("******************************* "); 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 }