package com.direct.str; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Scanner; public class CalendarOne { /** * @param args */ public static void showCalendar(int year,int month){ String[] weekString = {"日"," ","一"," ","二"," ","三"," ","四"," ","五"," ","六"}; for (int i = 0; i <weekString.length ; i++) { System.out.print(weekString[i]); } System.out.println(); Calendar c = new GregorianCalendar(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month-1); c.set(Calendar.DATE,1); int count = c.getActualMaximum(c.DAY_OF_MONTH);//得到当月的天数 int day_week = c.get(Calendar.DAY_OF_WEEK)-1; for(int i=0;i<day_week;i++){ System.out.print(" "); } for(int j=1;j<=count;j++,day_week++){ if((day_week)%7==0){ System.out.println(); } System.out.print(j+" "); } } public static void main(String[] args) { System.out.println("<<<<<<<<万年历>>>>>>>>"); Scanner sc = new Scanner(System.in); System.out.println("请输入年份:"); int year = sc.nextInt(); System.out.println("请输入月份:"); int month = sc.nextInt(); System.out.println("-------------"+year+"年"+month+"月------------"); CalendarOne.showCalendar(year,month); } }
package com.direct.str; public class CalendarTwo { public static void main(String[] args) { int year = 2017; int month = 12; int totalDay = 0; //天数计算从1900开始,毫秒数型1970年开始 for (int i = 1900; i < year; i++) { if(i%4==0 && i%100!=0 || i%400==0){ totalDay+=366; }else{ totalDay+=365; } } int dayM = 0; for (int i = 1; i <= month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: dayM = 31; totalDay+=dayM; break; case 4: case 6: case 9: case 11: dayM = 30; break; case 2: if(year%4==0 && year%100!=0 || year%400==0){ dayM = 29; }else{ dayM = 28; } break; default: System.out.println("月份有错"); break; } if(i<month){ totalDay+=dayM; } } int temp = totalDay%7; int firstDayofMonth = 0; if(temp==7){ firstDayofMonth = 0; }else { firstDayofMonth = temp; } System.out.println("日 一 二 三 四 五 六 "); for(int i=0;i<firstDayofMonth;i++){ System.out.print(" "); } for(int i=1;i<= dayM;i++){ System.out.print(i+" "); if((totalDay+i)%7==0){ System.out.println(); } } } }