2015-11-07 83 views
1

因此,我需要製作一個基本日曆,以顯示特定年份和月份的日曆(用戶應該能夠根據文本輸入在任何月份和任何一年中選擇 )。查看某個月的第一天是

到目前爲止,我已經設法創建一個日曆obj,使用Scanner從用戶那裏獲得所需的月份和年份,但是我的問題是如何找出每月的第一天是什麼?在上面的例子中,這是一個星期六。我的建立邏輯是,如果我知道第一天,我可以創建一個String [] []數組,並從第一天開始在相關日期循環顯示當天的日期。我使用掃描儀來獲取所需的月份和年份。然後我創建了一個日曆對象並設置了日曆變量; Calendar.YEAR和的Calendar.MONTH,按照由用戶根據需要:

Calendar cal= Calendar.getInstance(); 
cal.set(Calendar.YEAR, year); //my year variable is set 2015 
cal.set(Calendar.MONTH, chosenMonth); //my chosenMonth is set to 5 since January starts from 0. 

我用下面的代碼來測試我的壓延機,看它是否會執行代碼,如果週一是本月的第一天嘗試。 2015年6月,它是。

if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY){ System.out.println("This will print is my calendar secessfully gathers that monday was the first day of the month on June 2015.") }

它不執行。

回答

1

試試這個:

cal.set(Calendar.DATE, 1); 

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEEE"); 
System.out.println(sdf.format(cal.getTime())); 

輸出:

週六

Demo

1

的Java SE 8的日期和時間,java.time一個全新的API。見​​。

您可以使用類LocalDate來獲取給定星期的一天。例如,使用新的一天從上面做,

LocalDate d = LocalDate.of(2011, 10, 1); 

然後LocalDate::getDayOfWeek()方法將返回一個DayOfWeek枚舉實例,如SATURDAY

DayOfWeek dayOfWeek = localDate.getDayOfWeek(); 

該枚舉可以爲您的句子輸出呈現本地化的字符串。

String output = dayOfWeek.getDisplayName (TextStyle.FULL , Locale.CANADA_FRENCH); // Or Locale.US or Locale.ENGLISH, and so on. 

samedi

相關問題