* @see #WEEKEND_CEASE
* @see #getDayOfWeekType
* @stable ICU 2.0
+ * @deprecated use getWeekDataForRegion, getWeekData, setWeekData
*/
+ @Deprecated
public static final int WEEKDAY = 0;
/**
* @see #WEEKEND_CEASE
* @see #getDayOfWeekType
* @stable ICU 2.0
+ * @deprecated use getWeekDataForRegion, getWeekData, setWeekData
*/
+ @Deprecated
public static final int WEEKEND = 1;
/**
* @see #WEEKEND_CEASE
* @see #getDayOfWeekType
* @stable ICU 2.0
+ * @deprecated use getWeekDataForRegion, getWeekData, setWeekData
*/
+ @Deprecated
public static final int WEEKEND_ONSET = 2;
/**
* @see #WEEKEND_ONSET
* @see #getDayOfWeekType
* @stable ICU 2.0
+ * @deprecated use getWeekDataForRegion, getWeekData, setWeekData
*/
+ @Deprecated
public static final int WEEKEND_CEASE = 3;
/**
* @see #isWeekend(Date)
* @see #isWeekend()
* @stable ICU 2.0
+ * @deprecated use getWeekDataForRegion, getWeekData, setWeekData
*/
+ @Deprecated
public int getDayOfWeekType(int dayOfWeek) {
if (dayOfWeek < SUNDAY || dayOfWeek > SATURDAY) {
throw new IllegalArgumentException("Invalid day of week");
* @see #isWeekend(Date)
* @see #isWeekend()
* @stable ICU 2.0
+ * @deprecated use getWeekDataForRegion, getWeekData, setWeekData
*/
+ @Deprecated
public int getWeekendTransition(int dayOfWeek) {
if (dayOfWeek == weekendOnset) {
return weekendOnsetMillis;
/**
* Simple, immutable struct-like class for access to the CLDR weekend data.
- *
- * @internal
- * @deprecated This API is ICU internal only.
*/
- @Deprecated
public static final class WeekData {
/**
/**
* Constructor
- * @internal
- * @deprecated This API is ICU internal only.
*/
- @Deprecated
public WeekData(int fdow, int mdifw,
int weekendOnset, int weekendOnsetMillis,
int weekendCease, int weekendCeaseMillis) {
}
@Override
public String toString() {
- // TODO Auto-generated method stub
return "{" + firstDayOfWeek
+ ", " + minimalDaysInFirstWeek
+ ", " + weekendOnset
/**
* Return simple, immutable struct-like class for access to the CLDR weekend data.
- *
- * @internal
- * @deprecated This API is ICU internal only.
+ * @param region The input region. The results are undefined if the region code is not valid.
+ * @return the WeekData for the input region
*/
- @Deprecated
public static WeekData getWeekDataForRegion(String region) {
return WEEK_DATA_CACHE.createInstance(region, region);
}
+ /**
+ * Return simple, immutable struct-like class for access to the weekend data in this calendar.
+ * @return the WeekData for this calendar.
+ */
+ public WeekData getWeekData() {
+ return new WeekData(firstDayOfWeek, minimalDaysInFirstWeek, weekendOnset, weekendOnsetMillis, weekendCease, weekendCeaseMillis);
+ }
+
+ /**
+ * Set data in this calendar based on the WeekData input.
+ * @param wdata The week data to use
+ * @return this, for chaining
+ */
+ public Calendar setWeekData(WeekData wdata) {
+ setFirstDayOfWeek(wdata.firstDayOfWeek);
+ setMinimalDaysInFirstWeek(wdata.minimalDaysInFirstWeek);
+
+ weekendOnset = wdata.weekendOnset;
+ weekendOnsetMillis = wdata.weekendOnsetMillis;
+ weekendCease = wdata.weekendCease;
+ weekendCeaseMillis = wdata.weekendCeaseMillis;
+ return this;
+ }
+
private static WeekData getWeekDataForRegionInternal(String region) {
if (region == null) {
region = "001";
region = "001";
}
WeekData wdata = WEEK_DATA_CACHE.getInstance(region, region);
-
- setFirstDayOfWeek(wdata.firstDayOfWeek);
- setMinimalDaysInFirstWeek(wdata.minimalDaysInFirstWeek);
-
- weekendOnset = wdata.weekendOnset;
- weekendOnsetMillis = wdata.weekendOnsetMillis;
- weekendCease = wdata.weekendCease;
- weekendCeaseMillis = wdata.weekendCeaseMillis;
+ setWeekData(wdata);
}
/**
}
public void TestWeekendData_10560() {
- assertEquals("World", new Calendar.WeekData(2, 1, 7, 0, 1, 86400000), Calendar.getWeekDataForRegion("001"));
+ final Calendar.WeekData worldWeekData = new Calendar.WeekData(2, 1, 7, 0, 1, 86400000);
+ final Calendar.WeekData usWeekData = new Calendar.WeekData(1, 1, 7, 0, 1, 86400000);
+ final Calendar.WeekData testWeekData = new Calendar.WeekData(1, 2, 3, 4, 5, 86400000);
+
+ assertEquals("World", worldWeekData, Calendar.getWeekDataForRegion("001"));
assertEquals("Illegal code => world", Calendar.getWeekDataForRegion("001"), Calendar.getWeekDataForRegion("xx"));
assertEquals("FR = DE", Calendar.getWeekDataForRegion("FR"), Calendar.getWeekDataForRegion("DE"));
assertNotEquals("IN ≠ world", Calendar.getWeekDataForRegion("001"), Calendar.getWeekDataForRegion("IN"));
- assertNotEquals("FR ≠ EG", Calendar.getWeekDataForRegion("FR"), Calendar.getWeekDataForRegion("EG"));
+ assertNotEquals("FR ≠ EG", Calendar.getWeekDataForRegion("FR"), Calendar.getWeekDataForRegion("EG"));
+
+ Calendar aCalendar = Calendar.getInstance(Locale.US);
+ assertEquals("US", usWeekData, aCalendar.getWeekData());
+
+ aCalendar.setWeekData(testWeekData);
+ assertEquals("Custom", testWeekData, aCalendar.getWeekData());
}