ICU-5840 Misc. clean ups. Changed minimum year in IslamicCalendar to 1, because the current implementation has a problem with negative years.

X-SVN-Rev: 23774
This commit is contained in:
Yoshito Umaoka 2008-04-09 04:27:53 +00:00
parent 1cf3e685ad
commit 4b2b264cbf
3 changed files with 56 additions and 53 deletions

View file

@ -321,7 +321,7 @@ public class CompatibilityTest extends com.ibm.icu.dev.test.TestFmwk {
for (i=0; i<cal.getFieldCount(); ++i) {
if (cal.getMinimum(i) > cal.getGreatestMinimum(i))
errln("FAIL: getMinimum larger getGreatestMinimum for field " + i);
errln("FAIL: getMinimum larger than getGreatestMinimum for field " + i);
if (cal.getLeastMaximum(i) > cal.getMaximum(i))
errln("FAIL: getLeastMaximum larger than getMaximum for field " + i);
if (cal.getMinimum(i) >= cal.getMaximum(i))
@ -582,17 +582,18 @@ public class CompatibilityTest extends com.ibm.icu.dev.test.TestFmwk {
c.set(Calendar.WEEK_OF_YEAR, 10);
verify765("1997 Tuesday in week 10 of year = ", c, 1997, Calendar.MARCH, 4);
e = null;
try {
c.clear();
c.set(Calendar.YEAR, 1997);
c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
c.set(Calendar.WEEK_OF_YEAR, 0);
verify765("1997 Tuesday in week 0 of year = ", c, 1996, Calendar.DECEMBER, 24);
throw new Exception("Fail: WEEK_OF_YEAR 0 should be illegal");
c.getTime();
}
catch (IllegalArgumentException ex) {
System.out.print("");
e = ex;
}
verify765("1997 Tuesday in week 0 of year = ", e, c);
}
void verify765(String msg, Calendar c, int year, int month, int day) {
int cy = c.get(Calendar.YEAR); // NEWCAL

View file

@ -419,31 +419,30 @@ public class IndianCalendar extends Calendar {
}
private static final int LIMITS[][] = {
// Minimum Greatest Least Maximum
// Minimum Maximum
{ 0, 0, 0, 0 }, // ERA
{ -5000000, -5000000, 5000000, 5000000 }, // YEAR
{ 0, 0, 11, 11 }, // MONTH
{ 1, 1, 52, 53 }, // WEEK_OF_YEAR
{/* */}, // WEEK_OF_MONTH
{ 1, 1, 30, 31 }, // DAY_OF_MONTH
{ 1, 1, 365, 366 }, // DAY_OF_YEAR
{/* */}, // DAY_OF_WEEK
{ -1, -1, 5, 5 }, // DAY_OF_WEEK_IN_MONTH
{/* */}, // AM_PM
{/* */}, // HOUR
{/* */}, // HOUR_OF_DAY
{/* */}, // MINUTE
{/* */}, // SECOND
{/* */}, // MILLISECOND
{/* */}, // ZONE_OFFSET
{/* */}, // DST_OFFSET
{ -5000000, -5000000, 5000000, 5000000 }, // YEAR_WOY
{/* */}, // DOW_LOCAL
{ -5000000, -5000000, 5000000, 5000000 }, // EXTENDED_YEAR
{/* */}, // JULIAN_DAY
{/* */}, // MILLISECONDS_IN_DAY
{ 0, 0, 0, 0 }, // ERA_WOY
// Minimum Greatest Least Maximum
// Minimum Maximum
{ 0, 0, 0, 0}, // ERA
{ -5000000, -5000000, 5000000, 5000000}, // YEAR
{ 0, 0, 11, 11}, // MONTH
{ 1, 1, 52, 53}, // WEEK_OF_YEAR
{/* */}, // WEEK_OF_MONTH
{ 1, 1, 30, 31}, // DAY_OF_MONTH
{ 1, 1, 365, 366}, // DAY_OF_YEAR
{/* */}, // DAY_OF_WEEK
{ -1, -1, 5, 5}, // DAY_OF_WEEK_IN_MONTH
{/* */}, // AM_PM
{/* */}, // HOUR
{/* */}, // HOUR_OF_DAY
{/* */}, // MINUTE
{/* */}, // SECOND
{/* */}, // MILLISECOND
{/* */}, // ZONE_OFFSET
{/* */}, // DST_OFFSET
{ -5000000, -5000000, 5000000, 5000000}, // YEAR_WOY
{/* */}, // DOW_LOCAL
{ -5000000, -5000000, 5000000, 5000000}, // EXTENDED_YEAR
{/* */}, // JULIAN_DAY
{/* */}, // MILLISECONDS_IN_DAY
};

View file

@ -326,31 +326,34 @@ public class IslamicCalendar extends Calendar {
// Minimum / Maximum access functions
//-------------------------------------------------------------------------
// Note: Current IslamicCalendar implementation does not work
// well with negative years.
private static final int LIMITS[][] = {
// Minimum Greatest Least Maximum
// Minimum Maximum
{ 0, 0, 0, 0 }, // ERA
{ -5000000, -5000000, 5000000, 5000000 }, // YEAR
{ 0, 0, 11, 11 }, // MONTH
{ 1, 1, 50, 51 }, // WEEK_OF_YEAR
{/* */}, // WEEK_OF_MONTH
{ 1, 1, 29, 30 }, // DAY_OF_MONTH
{ 1, 1, 354, 355 }, // DAY_OF_YEAR
{/* */}, // DAY_OF_WEEK
{ -1, -1, 5, 5 }, // DAY_OF_WEEK_IN_MONTH
{/* */}, // AM_PM
{/* */}, // HOUR
{/* */}, // HOUR_OF_DAY
{/* */}, // MINUTE
{/* */}, // SECOND
{/* */}, // MILLISECOND
{/* */}, // ZONE_OFFSET
{/* */}, // DST_OFFSET
{ -5000000, -5000000, 5000000, 5000000 }, // YEAR_WOY
{/* */}, // DOW_LOCAL
{ -5000000, -5000000, 5000000, 5000000 }, // EXTENDED_YEAR
{/* */}, // JULIAN_DAY
{/* */}, // MILLISECONDS_IN_DAY
// Minimum Greatest Least Maximum
// Minimum Maximum
{ 0, 0, 0, 0}, // ERA
{ 1, 1, 5000000, 5000000}, // YEAR
{ 0, 0, 11, 11}, // MONTH
{ 1, 1, 50, 51}, // WEEK_OF_YEAR
{/* */}, // WEEK_OF_MONTH
{ 1, 1, 29, 30}, // DAY_OF_MONTH
{ 1, 1, 354, 355}, // DAY_OF_YEAR
{/* */}, // DAY_OF_WEEK
{ -1, -1, 5, 5}, // DAY_OF_WEEK_IN_MONTH
{/* */}, // AM_PM
{/* */}, // HOUR
{/* */}, // HOUR_OF_DAY
{/* */}, // MINUTE
{/* */}, // SECOND
{/* */}, // MILLISECOND
{/* */}, // ZONE_OFFSET
{/* */}, // DST_OFFSET
{ 1, 1, 5000000, 5000000}, // YEAR_WOY
{/* */}, // DOW_LOCAL
{ 1, 1, 5000000, 5000000}, // EXTENDED_YEAR
{/* */}, // JULIAN_DAY
{/* */}, // MILLISECONDS_IN_DAY
};
/**