Java-實現萬年曆
阿新 • • 發佈:2018-12-25
使用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;
}
}
執行結果如圖所示: