package com.nfsbbs.wang;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class VisualCalendar {
public static void main(String[] args) throws ParseException{ //异常抛出
System.out.println("请输入日期(按照格式:201705):");
//输入日期并格式化为yyyyMM
Scanner sc = new Scanner(System.in);
String df = sc.nextLine();
DateFormat format = new SimpleDateFormat("yyyyMM");
Date da = format.parse(df);
System.out.println("日 一 二 三 四 五 六 ");
//把格式化后的日期输入日历
Calendar ca = new GregorianCalendar();
ca.setTime(da);
ca.set(Calendar.DATE,1); //确定第一天
for(int i = 1; i < ca.get(Calendar.DAY_OF_WEEK); i++){ //在日历上显示月初是星期几
System.out.print(" ");
}
//主循环
int md = ca.getActualMaximum(Calendar.DATE); //获取本月最大天数
for(int i = 1; i <= md; i++){
System.out.print(i + " ");
int w = ca.get(Calendar.DAY_OF_WEEK); //获取当前是周几,每到周六换行
if(w == Calendar.SATURDAY){
System.out.println();
}
ca.add(Calendar.DATE,1); //日期+1,重新循环
}
}
}