我對此有些困難。Java:我如何得到一個月中x天的日期(例如2012年2月的第三個星期一)
我想設置我的日曆,讓我們說:第三個星期一2012年2月 我沒有發現這樣做使用Java這樣的任何方式。
例如,如果我想設置我的日曆在2011年聖誕節,我可以做到這一點很容易,這樣一來:
Calendar when = Calendar.getInstance();
when.set (Calendar.MONTH, Calendar.DECEMBER);
when.set (Calendar.DAY_OF_MONTH, 25)
when.set (Calendar.YEAR, 2011);
但我失去了對於如何將其設置爲假設紀念日2012年,這是五月的最後一個星期一。這是我的代碼,但它顯然是錯誤的,因爲我根本不能假設五月的最後一個星期一將在五月第四周這一年:
Calendar when = Calendar.getInstance();
when.set (Calendar.DAY_OF_WEEK,Calendar.MONDAY);
when.set (Calendar.MONTH, Calendar.MAY);
when.set (Calendar.WEEK_OF_MONTH, 4)
when.set (Calendar.YEAR, 2012);
任何建議,我怎麼能編程找到在2012年5月的哪一週(上例中)是最後一個星期一?假設我可以得到這些信息,我應該能夠得到我的代碼上面的工作。
我需要的東西基本上可以用於任何其他示例。有些東西可以爲相同的場景提供確切的一天。例子:
哪個日期是:
- 5月3日星期四2015年
- 月的第一個星期一2050
- 月4日星期二2012
- 2000年7月的第二個星期三
我真的需要這個對於我的項目,我相信這很簡單,但我沒有任何真正的結果來展示:)而且在網上也找不到任何東西。
補充:
好吧,這是我一直在一個月內得到了最後一個星期一:
when.set (GregorianCalendar.MONTH, GregorianCalendar.MAY);
when.set (GregorianCalendar.DAY_OF_WEEK, Calendar.MONDAY);
when.set (GregorianCalendar.DAY_OF_WEEK_IN_MONTH, -1);
when.set (Calendar.YEAR, 2012);
但我不知道我將如何去這樣做,例如在同一個月的星期一,像這樣?
when.set (GregorianCalendar.DAY_OF_WEEK_IN_MONTH, 2);
有什麼建議嗎?
我喜歡這個代碼很多,它實際上工作。我只是不知道如何在本月指定上個星期三(在這種情況下)。你能幫我嗎。 – jjj
我想嘗試類似於:LocalDate d = getNDayOfMonth(DateTimeConstants.WEDNESDAY,-1,10,2011);但它不起作用。 – jjj
@jjj:爲了獲得最後一個星期三的月份需要稍作修改,我爲此添加了一個方法。您也可以使用第一種方法:例如,獲取2001年10月的最後一個星期三,獲取2011年11月的第一個星期三,並減少一週。 – leonbloy