1.编写程序,利用GregorianCalendar类,打印当前月份的日历,样式如下:
今天的日期是 2008-02-23 ,如下为今日所在月份的日历
提示:分析程序的内容的结构,分解步骤分别处理
思路:
* 1)用户控制台循环输入字符串,得到正确的时间
* 2)打印周的时间列表(周日到周六)
* 3)打印输入时间的月里第一天所在周里天数个空格(周1-6,打印对应空格,周7打印0个)
* 4)拿到输入时间所在月里的最后一天,循环这么多次进行打印(当天的信息【数字,星号,tab,换行】)
* 数字:每次循环都打印
* 星号:当前的月中天就是输入的时间就打印星号
今天的日期是 2008-02-23 ,如下为今日所在月份的日历
提示:分析程序的内容的结构,分解步骤分别处理
思路:
* 1)用户控制台循环输入字符串,得到正确的时间
* 2)打印周的时间列表(周日到周六)
* 3)打印输入时间的月里第一天所在周里天数个空格(周1-6,打印对应空格,周7打印0个)
* 4)拿到输入时间所在月里的最后一天,循环这么多次进行打印(当天的信息【数字,星号,tab,换行】)
* 数字:每次循环都打印
* 星号:当前的月中天就是输入的时间就打印星号
* tab或换行:周日到周五打印tab,周六打印换行
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
app();
}
public static void app(){
Calendar inCa=inputCalendar();
int dayOfMonth=inCa.get(Calendar.DAY_OF_MONTH);
System.out.println("日\t一\t二\t三\t四\t五\t六");
printKg(inCa);
printAllMonthDay(inCa,dayOfMonth);
}
private static void printAllMonthDay(Calendar inCa, int inDayOfMonth) {
int maxDayOfMonth=inCa.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int curDay = 1; curDay <=maxDayOfMonth; curDay++) {
System.out.print(curDay);
if(curDay==inDayOfMonth){
System.out.print("*");
}
inCa.set(Calendar.DAY_OF_MONTH, curDay);
if(inCa.get(Calendar.DAY_OF_WEEK)!=Calendar.SATURDAY){
System.out.print("\t");
}else{
System.out.print("\n");
}
}
}
private static void printKg(Calendar inCa) {
inCa.set(Calendar.DAY_OF_MONTH, 1);
int weekDay= inCa.get(Calendar.DAY_OF_WEEK);
int countKg=weekDay-1;
for (int i = 0; i < countKg; i++) {
System.out.print('\t');
}
}
private static Calendar inputCalendar(){
Scanner sc=new Scanner(System.in);
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
while(true){
System.out.println("请输入一个格式为2008-02-23格式的字符串String时间!!");
String inStr=sc.next();
try{
Date inDate= df.parse(inStr);
Calendar c=new GregorianCalendar();
c.setTime(inDate);
return c;
} catch (ParseException e) {
System.out.println("警告-输入格式不匹配");
}
}
}
}