1. 程式人生 > >Java-實現萬年曆

Java-實現萬年曆

使用Java實現萬年曆。
程式碼如下:

package com.oraleoaec.test;
import java.util.Calendar;
import java.util.Scanner;
public class TestDate {
    private static int year; // 定義年份
    public static void main(String[] args) {
        int month; // 定義月份
        int dayNumber = 0;//該月的天數
        String[] days = new String[38
];//定義這個月的天數(陣列日曆) Scanner sc = new Scanner(System.in); System.out.print("請輸入年份:"); year = sc.nextInt(); while (year < 1) { System.out.print("你輸入的年份有誤,請重新輸入:"); year = sc.nextInt(); } System.out.print("請輸入月份:"); month = sc.nextInt(); while
(month < 1 || month > 12) { System.out.print("你輸入的月份有誤,請重新輸入:"); month = sc.nextInt(); } dayNumber = dayNumber(month); if(isLeapYear(year)){ System.out.println(year+"年為閏年,這個月有:"+dayNumber+"天!"); }else{ System.out.println(year+"年為平年,這個月有:"
+dayNumber+"天!"); } // 輸出表頭 System.out.println("---------------------" + year + "年" + month + "月" + "---------------------"); System.out.println(); System.out.println("日\t一\t二\t三\t四\t五\t六"); //設定時間 Calendar calendar = Calendar.getInstance(); calendar.set(year, month-1,1); //初始化日曆陣列 for(int i = 0; i < days.length; i++){ days[i] = " "; } //賦值 int j = 1; for(int i = calendar.get(Calendar.DAY_OF_WEEK)-1; i < days.length; i++,j++){ if(j <= dayNumber){ days[i] += j; } } //輸出日曆陣列,遇七換行 for(int i = 0; i < days.length; i++){ if(i%7==0){ System.out.println(); } System.out.print(days[i]+"\t"); } } //計算天數 public static int dayNumber(int month){ int dayNumber = 0; switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: dayNumber = 31; break; case 4: case 6: case 9: case 11: dayNumber = 30; break; case 2: if(isLeapYear(year)){ dayNumber = 29; }else{ dayNumber = 28; } break; default: System.out.println("你輸入的月份有誤!"); } return dayNumber; } // 判斷閏年 public static boolean isLeapYear(int year) { if (year % 100 == 0) { if (year % 400 == 0) { return true; } } else { if (year % 4 == 0) { return true; } } return false; } }

執行結果如圖所示:
這裡寫圖片描述