1. 程式人生 > >java實現日曆功能

java實現日曆功能

完成一個 java application應用程式,輸出一份當前所在時區當前時間的一個月的日曆(1號到28/29/30/31號,以及每天對應為星期幾)。

思路:

(1)獲得這一年是否是閏年。閏年的2月只有28天,非閏年2月有29天。其他1、3、5、7、8、10、12月每月31天,2、4、6、9、11每月30天。
(2)根據上一步獲得這個月的總天數。
(3)獲得這個月第一天是星期幾。然後依次填充。直到這個月最後一天。

程式碼如下:

import java.text.*;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import
java.util.Scanner; class MyCalendar { public static void main(String[] args) throws ParseException { int maxDay = 0; int firstDay = 0; int currentDay = 0; System.out.println("請輸入一個日期:格式為:2020-02-02"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); //鍵盤輸入日期格式的字串
DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format.parse(str); //將字串轉化為指定的日期格式 Calendar calendar = new GregorianCalendar(); calendar.setTime(date); //將日期轉化為日曆 maxDay = calendar.getActualMaximum(Calendar.DATE); //當前日期中當前月對應的最大天數 currentDay = calendar.get(Calendar.DATE); //當前日期中的當前天
calendar.set(Calendar.DATE, 1); // 設定為當前月的第一天 firstDay = calendar.get(Calendar.DAY_OF_WEEK); //當前日期中當前月第一天對應的星期數 System.out.println("------------------------------------------------------"); System.out.println("週日\t週一\t週二\t週三\t週四\t週五\t週六\n"); System.out.println("------------------------------------------------------"); for (int j = 1; j < firstDay; j++) //當前月第一天之前以空格輸出 { System.out.print("\t"); } for (int i = 1; i <= maxDay; i++) //輸出當月每一天的號數 { if (i == currentDay) //以*i表示當天日期 { System.out.print("*"); } System.out.print(i + "\t"); if ((i - (8 - firstDay)) % 7 == 0) //以七天為一個迴圈輸出所有天數 { System.out.println("\n"); } } } }

結果如下: 這裡寫圖片描述