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 = {"日","\t","一","\t","二","\t","三","\t","四","\t","五","\t","六"};
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("\t");
}
for(int j=1;j<=count;j++,day_week++){
if((day_week)%7==0){
System.out.println();
}
System.out.print(j+"\t");
}
}
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("日\t一\t二\t三\t四\t五\t六\t");
for(int i=0;i<firstDayofMonth;i++){
System.out.print("\t");
}
for(int i=1;i<= dayM;i++){
System.out.print(i+"\t");
if((totalDay+i)%7==0){
System.out.println();
}
}
}
}