privatestaticvoid testRoll(TimeZone tz, int[] params, int[] sequence) {
TimeZone.setDefault(tz); for (int i = 0; i < sequence.length; i++) {
testRoll(+1, params, sequence, i);
testRoll(-1, params, sequence, i);
}
}
// amount must be 1 or -1. privatestaticvoid testRoll(int amount, int[] params, int[] sequence, int startIndex) { int year = params[0]; int month = params[1]; int dayOfMonth = params[2]; int hourOfDay = sequence[startIndex];
Calendar cal = new GregorianCalendar(year, month, dayOfMonth,
hourOfDay, 0, 0); int ampm = cal.get(AM_PM);
int length = sequence.length; int count = length * 2; int field = (length > 12) ? HOUR_OF_DAY : HOUR;
System.out.printf("roll(%s, %2d) starting from %s%n",
(field == HOUR) ? "HOUR" : "HOUR_OF_DAY", amount, cal.getTime()); for (int i = 0; i < count; i++) { int index = (amount > 0) ? (startIndex + i + 1) % length
: Math.floorMod(startIndex - i - 1, length); int expected = sequence[index]; if (field == HOUR) {
expected %= 12;
}
cal.roll(field, amount); int value = cal.get(field); if (value != expected) {
System.out.println("Unexpected field value: got=" + value
+ ", expected=" + expected);
errors++;
} if (cal.get(DAY_OF_MONTH) != dayOfMonth) {
System.out.println("DAY_OF_MONTH changed: " + dayOfMonth
+ " to " + cal.get(DAY_OF_MONTH));
} if (field == HOUR && cal.get(AM_PM) != ampm) {
System.out.println("AM_PM changed: " + ampm + " to " + cal.get(AM_PM));
errors++;
}
}
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.