java 根據輸入的時間列印本月的日曆
阿新 • • 發佈:2018-12-25
package com.sxt;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class CalendarDemo {
public static void printCalendar(Calendar c, int day) {
Scanner sc = new Scanner(System.in);
StringBuffer sb = new StringBuffer();
sb.append("\t日\t一\t二\t三\t四\t五\t六\t" ).append("\n");
for (int i = 1; i < c.get(Calendar.DAY_OF_WEEK); i++) {
sb.append("\t");
}
//獲得當前月份的天數
int max = c.getActualMaximum(Calendar.DATE);
//獲得當月一號對應的常量值是3
int k = c.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i <= max; i++) {
sb.append("\t" ).append(i);
if (i == day) {
sb.append("*");
}
else if((i + k) % 7 == 1) {
sb.append("\n");
}
}
System.out.println(sb.toString());
}
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入日期:格式(2017-8-2)");
String dd = sc.next();
// 日期格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(dd);
// 得到Calendar型別的通用物件
Calendar c = Calendar.getInstance();
// 將給定的date設定成日曆的時間
c.setTime(date);
int year = c.get(Calendar.DAY_OF_YEAR);
System.out.println(year);
// 獲得給定的日期的第幾號。
int day = c.get(Calendar.DATE);
System.out.println(day);
// 設定當前月份的一號
c.set(Calendar.DATE, 1);
printCalendar(c, day);
}
}