更新時間:2024-04-21 14:47:43 來源:動力節點 瀏覽730次
要實現一個Java萬年歷,可以采用以下步驟:
獲取用戶輸入的年份和月份,可以使用Scanner類或JOptionPane類實現。
判斷該年份是否為閏年。如果該年份能夠被4整除但不能被100整除,或者能夠被400整除,那么該年就是閏年,否則為平年??梢酝ㄟ^Java的條件語句實現。
獲取該月份的第一天是星期幾,可以使用Java的Calendar類實現。通過設置Calendar對象的年份和月份,然后調用get方法獲取星期幾的值。
計算該月份的總天數,可以使用Java的switch語句根據月份來確定天數。
創建二維數組,用于存儲日歷表格。
填充日歷表格。先將第一行填充完整,然后在循環中從第二行開始填充。如果當月天數小于等于表格中剩余的天數,則將該月所有日期填充完畢。否則,填充該月的所有日期后,剩余的表格空間設置為0。
輸出日歷表格,可以使用Java的System.out.println方法逐行輸出。
下面是Java代碼示例:
import java.util.Calendar;
import java.util.Scanner;
public class CalendarDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入年份:");
int year = sc.nextInt();
System.out.print("請輸入月份:");
int month = sc.nextInt();
sc.close();
int days = getDaysOfMonth(year, month);
int firstDayOfWeek = getFirstDayOfWeek(year, month);
int[][] calendar = new int[6][7];
int day = 1;
for (int i = 0; i < calendar.length; i++) {
for (int j = 0; j < calendar[i].length; j++) {
if (i == 0 && j < firstDayOfWeek) {
calendar[i][j] = 0;
} else if (day > days) {
calendar[i][j] = 0;
} else {
calendar[i][j] = day;
day++;
}
}
}
System.out.println(year + "年" + month + "月的日歷:");
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 0; i < calendar.length; i++) {
for (int j = 0; j < calendar[i].length; j++) {
if (calendar[i][j] == 0) {
System.out.print("\t");
} else {
System.out.print(calendar[i][j] + "\t");
}
}
System.out.println();
}
}
// 獲取指定年月的總天數
public static int getDaysOfMonth(int year, int month) {
int days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
}
}
我們需要定義一個方法來輸出當前月份的日歷,代碼如下:
public static void printCalendar(int year, int month) {
int[][] calendar = getCalendar(year, month);
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
for (int i = 0; i < calendar.length; i++) {
for (int j = 0; j < calendar[i].length; j++) {
if (calendar[i][j] == 0) {
System.out.print(" ");
} else {
System.out.printf("%4d", calendar[i][j]);
}
}
System.out.println();
}
}
這個方法首先調用 getCalendar() 方法獲取當前月份的日歷數組,然后按照日歷格式輸出到控制臺上。
最后,我們可以編寫一個 main() 方法來測試我們的日歷程序:
public static void main(String[] args) {
int year = 2023;
int month = 3;
printCalendar(year, month);
}
這個 main() 方法輸出的是 2023 年 3 月的日歷,運行程序后輸出結果如下:
Sun Mon Tue Wed Thu Fri Sat
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
相關閱讀
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習