Untitled
unknown
plain_text
3 years ago
4.7 kB
3
Indexable
import java.util.Arrays; import java.util.Scanner; import java.util.Date; import java.text.SimpleDateFormat; import java.text.DateFormat; import java.text.ParseException; import java.util.Calendar; public class Main { public static void main(String[] args) { System.out.print("輸入指令號碼或 E(結束使用)\n"); System.out.print("輸入指令:\n"); System.out.print("1) A 顯示該月月曆\n"); System.out.print("2) B 西元轉換干支、生肖\n"); System.out.print("3) C 計算天數\n"); System.out.print("4) D 計算日期\n"); System.out.print("5) E 離開\n\n"); Scanner scanner = new Scanner(System.in); String select = scanner.next(); switch(select) { case "A": System.out.print("請輸入欲查詢日期(年/月/日):\n"); Scanner scannerA = new Scanner(System.in); String dateA = scanner.next(); showMonth(dateA); scannerA.close(); break; case "B": transform(); break; case "C": Scanner scannerC = new Scanner(System.in); String date = scanner.next(); calDays(date); scannerC.close(); break; case "D": System.out.print("請輸入往後推算得天數: \n"); Scanner scannerD = new Scanner(System.in); int count = scanner.nextInt(); calDate(count); scannerD.close(); break; case "E": System.out.print("---EXIT---\n"); System.exit(0); break; default: System.out.print("請重新輸入\n"); break; } scanner.close(); } private static void showMonth(String string) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); try { Date date = sdf.parse(string); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int month = calendar.get(Calendar.MONTH); int year = calendar.get(Calendar.YEAR); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); //get day of week for 1st of month int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(month); System.out.println(year); System.out.println(dayOfWeek); System.out.println(daysInMonth); System.out.println("Sun Mon Tus Wen Thu Fri Sat"); //print initial spaces String initialSpace = ""; for (int i = 0; i < dayOfWeek - 1; i++) { initialSpace += " "; } System.out.print(initialSpace); for (int i = 0, dayOfMonth = 1; dayOfMonth <= daysInMonth; i++) { for (int j = ((i == 0) ? dayOfWeek - 1 : 0); j < 7 && (dayOfMonth <= daysInMonth); j++) { System.out.printf("%3d ", dayOfMonth); dayOfMonth++; } System.out.println(); } return ; } catch (ParseException e) { e.printStackTrace(); return; } } private static void transform() { } private static int calDays_helper(String string) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); try { Date date = sdf.parse(string); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); Calendar calendar2 = Calendar.getInstance(); Date today = calendar2.getTime(); int days = (int) ((date.getTime()-today.getTime()) / (1000*3600*24)); return days; } catch (ParseException e) { e.printStackTrace(); return 0; } } private static void calDays(String string) { System.out.print("請輸入欲查詢日期(年/月/日):\n"); int ans = calDays_helper(string); System.out.println(string + "距離今天還有" + ans + "天\n"); } private static void calDate(int count) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String ans = ""; Calendar calendar = Calendar.getInstance(); Date startDay = calendar.getTime(); Calendar cl = Calendar.getInstance(); cl.setTime(startDay); cl.add(Calendar.DATE, count); ans = sdf.format(cl.getTime()); System.out.println("往後" + count + "天是" + ans + "\n"); } }
Editor is loading...