問題描述
假設以下代碼在 2009 年 8 月 22 日(星期六)執行
Suppose the following code is executed on the 22nd of August 2009 (a Saturday)
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
c.get(Calendar.DAY_OF_MONTH)
將返回 23.我感興趣的條件是返回 14(上周日,而不是下周日).
c.get(Calendar.DAY_OF_MONTH)
will return 23. I'm interested in the conditions is would return 14 (last Sunday, rather than the next Sunday).
當設置 DAY_OF_WEEK
時,是否有任何與日歷滾動 DAY_OF_MONTH/YEAR
的方向相關的規則?如果有,它們是什么?
Are there any rules associated with the direction Calendar will roll the DAY_OF_MONTH/YEAR
when DAY_OF_WEEK
is set? If so what are they?
推薦答案
應該始終保持相同的WEEK_OF_MONTH
(http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#WEEK_OF_MONTH).來自文檔:
It should always keep the same WEEK_OF_MONTH
(http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#WEEK_OF_MONTH). From the documentation:
當設置或獲取WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段,日歷必須確定第一周作為參考的月份或年份觀點.一個月的第一周或年份被定義為最早的七個日期間開始于getFirstDayOfWeek() 并包含在最少 getMinimalDaysInFirstWeek() 天那個月或那個年.周數..., -1, 0 在第一周之前;第 2 周、第 3 周、... 跟隨它.請注意,標準化編號get() 返回的可能不同.例如,特定的日歷子類可以指定前一周一年的第 1 周作為第 n 周上一年.
When setting or getting the WEEK_OF_MONTH or WEEK_OF_YEAR fields, Calendar must determine the first week of the month or year as a reference point. The first week of a month or year is defined as the earliest seven day period beginning on getFirstDayOfWeek() and containing at least getMinimalDaysInFirstWeek() days of that month or year. Weeks numbered ..., -1, 0 precede the first week; weeks numbered 2, 3,... follow it. Note that the normalized numbering returned by get() may be different. For example, a specific Calendar subclass may designate the week before week 1 of a year as week n of the previous year.
這篇關于Java Calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY),它會向后滾動,向前滾動還是未知?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!