home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- public class GregorianCalendar extends Calendar {
- // $FF: renamed from: BC int
- public static final int field_0 = 0;
- // $FF: renamed from: AD int
- public static final int field_1 = 1;
- private static final int JAN_1_1_JULIAN_DAY = 1721426;
- private static final int EPOCH_JULIAN_DAY = 2440588;
- private static final int EPOCH_YEAR = 1970;
- private static final int[] NUM_DAYS = new int[]{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
- private static final int[] LEAP_NUM_DAYS = new int[]{0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};
- private static final int[] MONTH_LENGTH = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- private static final int[] LEAP_MONTH_LENGTH = new int[]{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- private static final int ONE_SECOND = 1000;
- private static final int ONE_MINUTE = 60000;
- private static final int ONE_HOUR = 3600000;
- private static final long ONE_DAY = 86400000L;
- private static final long ONE_WEEK = 604800000L;
- private static final int[] MIN_VALUES = new int[]{0, 1, 0, 1, 0, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, -43200000, 0};
- private static final int[] LEAST_MAX_VALUES = new int[]{1, 292269054, 11, 52, 4, 28, 365, 7, 4, 1, 11, 23, 59, 59, 999, 43200000, 3600000};
- private static final int[] MAX_VALUES = new int[]{1, 292278994, 11, 53, 6, 31, 366, 7, 6, 1, 11, 23, 59, 59, 999, 43200000, 3600000};
- private long gregorianCutover;
- private transient long normalizedGregorianCutover;
- private transient int gregorianCutoverYear;
- static final long serialVersionUID = -8125100834729963327L;
-
- public GregorianCalendar() {
- this(TimeZone.getDefault(), Locale.getDefault());
- }
-
- public GregorianCalendar(TimeZone var1) {
- this(var1, Locale.getDefault());
- }
-
- public GregorianCalendar(Locale var1) {
- this(TimeZone.getDefault(), var1);
- }
-
- public GregorianCalendar(TimeZone var1, Locale var2) {
- super(var1, var2);
- this.gregorianCutover = -12219292800000L;
- this.normalizedGregorianCutover = this.gregorianCutover;
- this.gregorianCutoverYear = 1582;
- ((Calendar)this).setTimeInMillis(System.currentTimeMillis());
- }
-
- public GregorianCalendar(int var1, int var2, int var3) {
- super(TimeZone.getDefault(), Locale.getDefault());
- this.gregorianCutover = -12219292800000L;
- this.normalizedGregorianCutover = this.gregorianCutover;
- this.gregorianCutoverYear = 1582;
- ((Calendar)this).set(0, 1);
- ((Calendar)this).set(1, var1);
- ((Calendar)this).set(2, var2);
- ((Calendar)this).set(5, var3);
- }
-
- public GregorianCalendar(int var1, int var2, int var3, int var4, int var5) {
- super(TimeZone.getDefault(), Locale.getDefault());
- this.gregorianCutover = -12219292800000L;
- this.normalizedGregorianCutover = this.gregorianCutover;
- this.gregorianCutoverYear = 1582;
- ((Calendar)this).set(0, 1);
- ((Calendar)this).set(1, var1);
- ((Calendar)this).set(2, var2);
- ((Calendar)this).set(5, var3);
- ((Calendar)this).set(11, var4);
- ((Calendar)this).set(12, var5);
- }
-
- public GregorianCalendar(int var1, int var2, int var3, int var4, int var5, int var6) {
- super(TimeZone.getDefault(), Locale.getDefault());
- this.gregorianCutover = -12219292800000L;
- this.normalizedGregorianCutover = this.gregorianCutover;
- this.gregorianCutoverYear = 1582;
- ((Calendar)this).set(0, 1);
- ((Calendar)this).set(1, var1);
- ((Calendar)this).set(2, var2);
- ((Calendar)this).set(5, var3);
- ((Calendar)this).set(11, var4);
- ((Calendar)this).set(12, var5);
- ((Calendar)this).set(13, var6);
- }
-
- public void setGregorianChange(Date var1) {
- this.gregorianCutover = var1.getTime();
- long var2 = floorDivide(this.gregorianCutover, 86400000L);
- this.normalizedGregorianCutover = var2 * 86400000L;
- if (var2 < 0L && this.normalizedGregorianCutover > 0L) {
- this.normalizedGregorianCutover = (var2 + 1L) * 86400000L;
- }
-
- GregorianCalendar var4 = new GregorianCalendar(((Calendar)this).getTimeZone());
- ((Calendar)var4).setTime(var1);
- this.gregorianCutoverYear = ((Calendar)var4).get(1);
- if (((Calendar)var4).get(0) == 0) {
- this.gregorianCutoverYear = 1 - this.gregorianCutoverYear;
- }
-
- }
-
- public final Date getGregorianChange() {
- return new Date(this.gregorianCutover);
- }
-
- public boolean isLeapYear(int var1) {
- return var1 >= this.gregorianCutoverYear ? var1 % 4 == 0 && (var1 % 100 != 0 || var1 % 400 == 0) : var1 % 4 == 0;
- }
-
- public boolean equals(Object var1) {
- return super.equals(var1) && var1 instanceof GregorianCalendar && this.gregorianCutover == ((GregorianCalendar)var1).gregorianCutover;
- }
-
- public int hashCode() {
- return super.hashCode() ^ (int)this.gregorianCutover;
- }
-
- public void add(int var1, int var2) {
- if (var2 != 0) {
- ((Calendar)this).complete();
- if (var1 == 1) {
- int var3 = ((Calendar)this).internalGet(1);
- if (this.internalGetEra() == 1) {
- var3 += var2;
- if (var3 > 0) {
- ((Calendar)this).set(1, var3);
- } else {
- ((Calendar)this).set(1, 1 - var3);
- ((Calendar)this).set(0, 0);
- }
- } else {
- var3 -= var2;
- if (var3 > 0) {
- ((Calendar)this).set(1, var3);
- } else {
- ((Calendar)this).set(1, 1 - var3);
- ((Calendar)this).set(0, 1);
- }
- }
-
- this.pinDayOfMonth();
- } else if (var1 == 2) {
- int var10 = ((Calendar)this).internalGet(2) + var2;
- if (var10 >= 0) {
- ((Calendar)this).set(1, ((Calendar)this).internalGet(1) + var10 / 12);
- ((Calendar)this).set(2, var10 % 12);
- } else {
- ((Calendar)this).set(1, ((Calendar)this).internalGet(1) + (var10 + 1) / 12 - 1);
- var10 %= 12;
- if (var10 < 0) {
- var10 += 12;
- }
-
- ((Calendar)this).set(2, 0 + var10);
- }
-
- this.pinDayOfMonth();
- } else if (var1 == 0) {
- int var12 = ((Calendar)this).internalGet(0) + var2;
- if (var12 < 0) {
- var12 = 0;
- }
-
- if (var12 > 1) {
- var12 = 1;
- }
-
- ((Calendar)this).set(0, var12);
- } else {
- long var13 = (long)var2;
- boolean var5 = true;
- switch (var1) {
- case 3:
- case 4:
- case 8:
- var13 *= 604800000L;
- break;
- case 5:
- case 6:
- case 7:
- var13 *= 86400000L;
- break;
- case 9:
- var13 *= 43200000L;
- break;
- case 10:
- case 11:
- var13 *= 3600000L;
- var5 = false;
- break;
- case 12:
- var13 *= 60000L;
- var5 = false;
- break;
- case 13:
- var13 *= 1000L;
- var5 = false;
- break;
- case 14:
- var5 = false;
- break;
- case 15:
- case 16:
- default:
- throw new IllegalArgumentException();
- }
-
- long var6 = 0L;
- if (var5) {
- var6 = (long)((Calendar)this).internalGet(16);
- }
-
- ((Calendar)this).setTimeInMillis(super.time + var13);
- if (var5) {
- var6 -= (long)((Calendar)this).internalGet(16);
- if (var13 != 0L) {
- ((Calendar)this).setTimeInMillis(super.time + var6);
- }
- }
- }
-
- }
- }
-
- public void roll(int var1, boolean var2) {
- this.roll(var1, var2 ? 1 : -1);
- }
-
- public void roll(int var1, int var2) {
- if (var2 != 0) {
- int var3 = 0;
- int var4 = 0;
- if (var1 >= 0 && var1 < 17) {
- ((Calendar)this).complete();
- var3 = this.getMinimum(var1);
- var4 = this.getMaximum(var1);
- }
-
- switch (var1) {
- case 2:
- int var21 = (((Calendar)this).internalGet(2) + var2) % 12;
- if (var21 < 0) {
- var21 += 12;
- }
-
- ((Calendar)this).set(2, var21);
- int var27 = this.monthLength(var21);
- int var33 = ((Calendar)this).internalGet(5);
- if (var33 > var27) {
- ((Calendar)this).set(5, var27);
- }
-
- return;
- case 3:
- int var19 = ((Calendar)this).internalGet(3);
- int var26 = ((Calendar)this).internalGet(1);
- int var32 = ((Calendar)this).internalGet(6);
- if (((Calendar)this).internalGet(2) == 0) {
- if (var19 >= 52) {
- --var26;
- var32 += this.yearLength(var26);
- }
- } else if (var19 == 1) {
- var32 -= this.yearLength(var26);
- ++var26;
- }
-
- var19 += var2;
- if (var19 < 1 || var19 > 52) {
- int var36 = this.yearLength(var26);
- int var39 = (var36 - var32 + ((Calendar)this).internalGet(7) - ((Calendar)this).getFirstDayOfWeek()) % 7;
- if (var39 < 0) {
- var39 += 7;
- }
-
- if (6 - var39 >= ((Calendar)this).getMinimalDaysInFirstWeek()) {
- var36 -= 7;
- }
-
- int var40 = this.weekNumber(var36, var39 + 1);
- var19 = (var19 + var40 - 1) % var40 + 1;
- }
-
- ((Calendar)this).set(3, var19);
- ((Calendar)this).set(1, var26);
- return;
- case 4:
- int var18 = ((Calendar)this).internalGet(7) - ((Calendar)this).getFirstDayOfWeek();
- if (var18 < 0) {
- var18 += 7;
- }
-
- int var25 = (var18 - ((Calendar)this).internalGet(5) + 1) % 7;
- if (var25 < 0) {
- var25 += 7;
- }
-
- int var31;
- if (7 - var25 < ((Calendar)this).getMinimalDaysInFirstWeek()) {
- var31 = 8 - var25;
- } else {
- var31 = 1 - var25;
- }
-
- int var35 = this.monthLength(((Calendar)this).internalGet(2));
- int var38 = (var35 - ((Calendar)this).internalGet(5) + var18) % 7;
- int var11 = var35 + 7 - var38;
- int var5 = var11 - var31;
- int var41 = (((Calendar)this).internalGet(5) + var2 * 7 - var31) % var5;
- if (var41 < 0) {
- var41 += var5;
- }
-
- var41 += var31;
- if (var41 < 1) {
- var41 = 1;
- }
-
- if (var41 > var35) {
- var41 = var35;
- }
-
- ((Calendar)this).set(5, var41);
- return;
- case 5:
- var4 = this.monthLength(((Calendar)this).internalGet(2));
- case 0:
- case 1:
- case 9:
- case 12:
- case 13:
- case 14:
- int var14 = var4 - var3 + 1;
- int var22 = ((Calendar)this).internalGet(var1) + var2;
- var22 = (var22 - var3) % var14;
- if (var22 < 0) {
- var22 += var14;
- }
-
- var22 += var3;
- ((Calendar)this).set(var1, var22);
- return;
- case 6:
- long var17 = (long)var2 * 86400000L;
- long var30 = super.time - (long)(((Calendar)this).internalGet(6) - 1) * 86400000L;
- int var37 = this.yearLength();
- super.time = (super.time + var17 - var30) % ((long)var37 * 86400000L);
- if (super.time < 0L) {
- super.time += (long)var37 * 86400000L;
- }
-
- ((Calendar)this).setTimeInMillis(super.time + var30);
- return;
- case 7:
- long var16 = (long)var2 * 86400000L;
- int var29 = ((Calendar)this).internalGet(7) - ((Calendar)this).getFirstDayOfWeek();
- if (var29 < 0) {
- var29 += 7;
- }
-
- long var34 = super.time - (long)var29 * 86400000L;
- super.time = (super.time + var16 - var34) % 604800000L;
- if (super.time < 0L) {
- super.time += 604800000L;
- }
-
- ((Calendar)this).setTimeInMillis(super.time + var34);
- return;
- case 8:
- long var15 = (long)var2 * 604800000L;
- int var28 = (((Calendar)this).internalGet(5) - 1) / 7;
- int var9 = (this.monthLength(((Calendar)this).internalGet(2)) - ((Calendar)this).internalGet(5)) / 7;
- long var10 = super.time - (long)var28 * 604800000L;
- long var12 = 604800000L * (long)(var28 + var9 + 1);
- super.time = (super.time + var15 - var10) % var12;
- if (super.time < 0L) {
- super.time += var12;
- }
-
- ((Calendar)this).setTimeInMillis(super.time + var10);
- return;
- case 10:
- case 11:
- Date var6 = ((Calendar)this).getTime();
- int var7 = ((Calendar)this).internalGet(var1);
- int var8 = (var7 + var2) % (var4 + 1);
- if (var8 < 0) {
- var8 += var4 + 1;
- }
-
- ((Calendar)this).setTime(new Date(var6.getTime() + (long)(3600000 * (var8 - var7))));
- return;
- case 15:
- case 16:
- default:
- throw new IllegalArgumentException();
- }
- }
- }
-
- public int getMinimum(int var1) {
- return MIN_VALUES[var1];
- }
-
- public int getMaximum(int var1) {
- return MAX_VALUES[var1];
- }
-
- public int getGreatestMinimum(int var1) {
- return MIN_VALUES[var1];
- }
-
- public int getLeastMaximum(int var1) {
- return LEAST_MAX_VALUES[var1];
- }
-
- public int getActualMinimum(int var1) {
- return this.getMinimum(var1);
- }
-
- public int getActualMaximum(int var1) {
- switch (var1) {
- case 1:
- Calendar var2 = (Calendar)((Calendar)this).clone();
- var2.setLenient(true);
- int var3 = var2.get(0);
- Date var4 = var2.getTime();
- int var5 = LEAST_MAX_VALUES[1];
- int var6 = MAX_VALUES[1] + 1;
-
- while(var5 + 1 < var6) {
- int var7 = (var5 + var6) / 2;
- var2.set(1, var7);
- if (var2.get(1) == var7 && var2.get(0) == var3) {
- var5 = var7;
- } else {
- var6 = var7;
- var2.setTime(var4);
- }
- }
-
- return var5;
- case 2:
- case 7:
- default:
- return this.getMaximum(var1);
- case 3:
- case 4:
- case 8:
- return super.getActualMaximum(var1);
- case 5:
- return this.monthLength(((Calendar)this).get(2));
- case 6:
- return this.yearLength();
- }
- }
-
- boolean inDaylightTime() {
- if (!((Calendar)this).getTimeZone().useDaylightTime()) {
- return false;
- } else {
- ((Calendar)this).complete();
- return ((Calendar)this).internalGet(16) != 0;
- }
- }
-
- int getISOYear() {
- ((Calendar)this).complete();
- int var1 = ((Calendar)this).internalGet(3);
- int var2 = ((Calendar)this).internalGet(1);
- if (((Calendar)this).internalGet(2) == 0) {
- if (var1 >= 52) {
- --var2;
- }
- } else if (var1 == 1) {
- ++var2;
- }
-
- return var2;
- }
-
- protected void computeFields() {
- int var1 = ((Calendar)this).getTimeZone().getRawOffset();
- long var2 = super.time + (long)var1;
- if (super.time > 0L && var2 < 0L && var1 > 0) {
- var2 = Long.MAX_VALUE;
- } else if (super.time < 0L && var2 > 0L && var1 < 0) {
- var2 = Long.MIN_VALUE;
- }
-
- this.timeToFields(var2, false);
- int var4 = this.internalGetEra();
- int var5 = ((Calendar)this).internalGet(1);
- int var6 = ((Calendar)this).internalGet(2);
- int var7 = ((Calendar)this).internalGet(5);
- int var8 = ((Calendar)this).internalGet(7);
- long var9 = var2 / 86400000L;
- int var11 = (int)(var2 - var9 * 86400000L);
- if (var11 < 0) {
- var11 = (int)((long)var11 + 86400000L);
- }
-
- int var12 = ((Calendar)this).getTimeZone().getOffset(var4, var5, var6, var7, var8, var11, this.monthLength(var6), this.prevMonthLength(var6)) - var1;
- var11 += var12;
- if ((long)var11 >= 86400000L) {
- long var13 = var2 + (long)var12;
- var11 = (int)((long)var11 - 86400000L);
- if (var2 > 0L && var13 < 0L && var12 > 0) {
- var13 = Long.MAX_VALUE;
- } else if (var2 < 0L && var13 > 0L && var12 < 0) {
- var13 = Long.MIN_VALUE;
- }
-
- this.timeToFields(var13, false);
- }
-
- ((Calendar)this).internalSet(14, var11 % 1000);
- var11 /= 1000;
- ((Calendar)this).internalSet(13, var11 % 60);
- var11 /= 60;
- ((Calendar)this).internalSet(12, var11 % 60);
- var11 /= 60;
- ((Calendar)this).internalSet(11, var11);
- ((Calendar)this).internalSet(9, var11 / 12);
- ((Calendar)this).internalSet(10, var11 % 12);
- ((Calendar)this).internalSet(15, var1);
- ((Calendar)this).internalSet(16, var12);
-
- for(int var19 = 0; var19 < 17; ++var19) {
- super.stamp[var19] = 1;
- super.isSet[var19] = true;
- }
-
- }
-
- private final void timeToFields(long var1, boolean var3) {
- int var4;
- int var8;
- int var9;
- boolean var12;
- if (var1 >= this.normalizedGregorianCutover) {
- long var13 = millisToJulianDay(var1) - 1721426L;
- int[] var15 = new int[1];
- int var16 = floorDivide(var13, 146097, var15);
- int var17 = floorDivide(var15[0], 36524, var15);
- int var18 = floorDivide(var15[0], 1461, var15);
- int var19 = floorDivide(var15[0], 365, var15);
- var4 = 400 * var16 + 100 * var17 + 4 * var18 + var19;
- var9 = var15[0];
- if (var17 != 4 && var19 != 4) {
- ++var4;
- } else {
- var9 = 365;
- }
-
- var12 = (var4 & 3) == 0 && (var4 % 100 != 0 || var4 % 400 == 0);
- var8 = (int)((var13 + 1L) % 7L);
- } else {
- long var22 = millisToJulianDay(var1) - 1721424L;
- var4 = (int)floorDivide(4L * var22 + 1464L, 1461L);
- long var24 = (long)(365 * (var4 - 1) + floorDivide(var4 - 1, 4));
- var9 = (int)(var22 - var24);
- var12 = (var4 & 3) == 0;
- var8 = (int)((var22 - 1L) % 7L);
- }
-
- int var23 = 0;
- int var14 = var12 ? 60 : 59;
- if (var9 >= var14) {
- var23 = var12 ? 1 : 2;
- }
-
- int var6 = (12 * (var9 + var23) + 6) / 367;
- int var7 = var9 - (var12 ? LEAP_NUM_DAYS[var6] : NUM_DAYS[var6]) + 1;
- var8 += var8 < 0 ? 8 : 1;
- byte var11 = 1;
- int var5 = var4;
- if (var4 < 1) {
- var11 = 0;
- var5 = 1 - var4;
- }
-
- ((Calendar)this).internalSet(0, var11);
- ((Calendar)this).internalSet(1, var5);
- ((Calendar)this).internalSet(2, var6 + 0);
- ((Calendar)this).internalSet(5, var7);
- ((Calendar)this).internalSet(7, var8);
- ++var9;
- ((Calendar)this).internalSet(6, var9);
- if (!var3) {
- int var25 = (var8 + 7 - ((Calendar)this).getFirstDayOfWeek()) % 7;
- int var26 = (var8 - var9 + 701 - ((Calendar)this).getFirstDayOfWeek()) % 7;
- int var27 = (var9 - 1 + var26) / 7;
- if (7 - var26 >= ((Calendar)this).getMinimalDaysInFirstWeek()) {
- ++var27;
- }
-
- if (var9 > 359) {
- int var28 = this.yearLength();
- int var30 = (var25 + var28 - var9) % 7;
- if (var30 < 0) {
- var30 += 7;
- }
-
- if (6 - var30 >= ((Calendar)this).getMinimalDaysInFirstWeek() && var9 + 7 - var25 > var28) {
- var27 = 1;
- }
- } else if (var27 == 0) {
- int var29 = var9 + this.yearLength(var4 - 1);
- var27 = this.weekNumber(var29, var8);
- }
-
- ((Calendar)this).internalSet(3, var27);
- ((Calendar)this).internalSet(4, this.weekNumber(var7, var8));
- ((Calendar)this).internalSet(8, (var7 - 1) / 7 + 1);
- }
- }
-
- protected void computeTime() {
- if (!((Calendar)this).isLenient() && !this.validateFields()) {
- throw new IllegalArgumentException();
- } else {
- int var1 = super.stamp[1] != 0 ? ((Calendar)this).internalGet(1) : 1970;
- int var2 = 1;
- if (super.stamp[0] != 0) {
- var2 = ((Calendar)this).internalGet(0);
- if (var2 == 0) {
- var1 = 1 - var1;
- } else if (var2 != 1) {
- throw new IllegalArgumentException("Invalid era");
- }
- }
-
- boolean var3 = var1 >= this.gregorianCutoverYear;
- long var4 = this.computeJulianDay(var3, var1);
- long var6 = julianDayToMillis(var4);
- if (var3 != var6 >= this.normalizedGregorianCutover && var4 != -106749550580L) {
- var4 = this.computeJulianDay(!var3, var1);
- var6 = julianDayToMillis(var4);
- }
-
- int var8 = 0;
- int var9 = super.stamp[11];
- int var10 = super.stamp[10];
- int var11 = var10 > var9 ? var10 : var9;
- if (var11 != 0) {
- if (var11 == var9) {
- var8 += ((Calendar)this).internalGet(11);
- } else {
- var8 += ((Calendar)this).internalGet(10);
- var8 += 12 * ((Calendar)this).internalGet(9);
- }
- }
-
- var8 *= 60;
- var8 += ((Calendar)this).internalGet(12);
- var8 *= 60;
- var8 += ((Calendar)this).internalGet(13);
- var8 *= 1000;
- var8 += ((Calendar)this).internalGet(14);
- TimeZone var12 = ((Calendar)this).getTimeZone();
- int var13 = super.stamp[15] >= 2 ? ((Calendar)this).internalGet(15) : var12.getRawOffset();
- var6 += (long)var8;
- int var14 = 0;
- if (super.stamp[15] >= 2) {
- var14 = ((Calendar)this).internalGet(16);
- } else {
- int[] var15 = new int[1];
- floorDivide(var6, 86400000, var15);
- int var16;
- if (!((Calendar)this).isLenient() && super.stamp[2] != 0 && super.stamp[5] != 0 && var8 == var15[0]) {
- var16 = julianDayToDayOfWeek(var4);
- } else {
- this.timeToFields(var6, true);
- var16 = ((Calendar)this).internalGet(7);
- }
-
- var14 = var12.getOffset(var2, ((Calendar)this).internalGet(1), ((Calendar)this).internalGet(2), ((Calendar)this).internalGet(5), var16, var15[0], this.monthLength(((Calendar)this).internalGet(2)), this.prevMonthLength(((Calendar)this).internalGet(2))) - var13;
- }
-
- super.time = var6 - (long)var13 - (long)var14;
- }
- }
-
- private final long computeJulianDay(boolean var1, int var2) {
- int var3 = 0;
- int var4 = 0;
- long var6 = 0L;
- int var8 = super.stamp[7];
- int var9 = super.stamp[2];
- int var10 = super.stamp[5];
- int var11 = aggregateStamp(super.stamp[4], var8);
- int var12 = aggregateStamp(super.stamp[8], var8);
- int var13 = super.stamp[6];
- int var14 = aggregateStamp(super.stamp[3], var8);
- int var15 = var10;
- if (var11 > var10) {
- var15 = var11;
- }
-
- if (var12 > var15) {
- var15 = var12;
- }
-
- if (var13 > var15) {
- var15 = var13;
- }
-
- if (var14 > var15) {
- var15 = var14;
- }
-
- if (var15 == 0) {
- var11 = super.stamp[4];
- var12 = Math.max(super.stamp[8], var8);
- var14 = super.stamp[3];
- var15 = Math.max(Math.max(var11, var12), var14);
- if (var15 == 0) {
- var10 = var9;
- var15 = var9;
- }
- }
-
- boolean var16 = false;
- if (var15 == var10 || var15 == var11 || var15 == var12) {
- var16 = true;
- var3 = var9 != 0 ? ((Calendar)this).internalGet(2) - 0 : 0;
- if (var3 < 0 || var3 > 11) {
- int[] var17 = new int[1];
- var2 += floorDivide(var3, 12, var17);
- var3 = var17[0];
- }
- }
-
- boolean var27 = var2 % 4 == 0;
- int var5 = var2 - 1;
- long var18 = 365L * (long)var5 + (long)floorDivide(var5, 4) + 1721423L;
- if (var1) {
- var27 = var27 && (var2 % 100 != 0 || var2 % 400 == 0);
- var18 += (long)(floorDivide(var5, 400) - floorDivide(var5, 100) + 2);
- }
-
- if (var16) {
- var18 += var27 ? (long)LEAP_NUM_DAYS[var3] : (long)NUM_DAYS[var3];
- if (var15 == var10) {
- var4 = super.stamp[5] != 0 ? ((Calendar)this).internalGet(5) : 1;
- } else {
- int var20 = julianDayToDayOfWeek(var18 + 1L) - ((Calendar)this).getFirstDayOfWeek();
- if (var20 < 0) {
- var20 += 7;
- }
-
- var4 = 1 - var20 + (var8 != 0 ? ((Calendar)this).internalGet(7) - ((Calendar)this).getFirstDayOfWeek() : 0);
- if (var15 == var11) {
- if (7 - var20 < ((Calendar)this).getMinimalDaysInFirstWeek()) {
- var4 += 7;
- }
-
- var4 += 7 * (((Calendar)this).internalGet(4) - 1);
- } else {
- if (var4 < 1) {
- var4 += 7;
- }
-
- int var21 = super.stamp[8] != 0 ? ((Calendar)this).internalGet(8) : 1;
- if (var21 >= 0) {
- var4 += 7 * (var21 - 1);
- } else {
- var4 += ((this.monthLength(((Calendar)this).internalGet(2), var2) - var4) / 7 + var21 + 1) * 7;
- }
- }
- }
-
- var18 += (long)var4;
- } else if (var15 == var13) {
- var18 += (long)((Calendar)this).internalGet(6);
- } else {
- int var30 = julianDayToDayOfWeek(var18 + 1L) - ((Calendar)this).getFirstDayOfWeek();
- if (var30 < 0) {
- var30 += 7;
- }
-
- var4 = 1 - var30 + (var8 != 0 ? ((Calendar)this).internalGet(7) - ((Calendar)this).getFirstDayOfWeek() : 0);
- if (7 - var30 < ((Calendar)this).getMinimalDaysInFirstWeek()) {
- var4 += 7;
- }
-
- var4 += 7 * (((Calendar)this).internalGet(3) - 1);
- var18 += (long)var4;
- }
-
- return var18;
- }
-
- private static final long millisToJulianDay(long var0) {
- return 2440588L + floorDivide(var0, 86400000L);
- }
-
- private static final long julianDayToMillis(long var0) {
- return (var0 - 2440588L) * 86400000L;
- }
-
- private static final int julianDayToDayOfWeek(long var0) {
- int var2 = (int)((var0 + 1L) % 7L);
- return var2 + (var2 < 0 ? 8 : 1);
- }
-
- private static final long floorDivide(long var0, long var2) {
- return var0 >= 0L ? var0 / var2 : (var0 + 1L) / var2 - 1L;
- }
-
- private static final int floorDivide(int var0, int var1) {
- return var0 >= 0 ? var0 / var1 : (var0 + 1) / var1 - 1;
- }
-
- private static final int floorDivide(int var0, int var1, int[] var2) {
- if (var0 >= 0) {
- var2[0] = var0 % var1;
- return var0 / var1;
- } else {
- int var3 = (var0 + 1) / var1 - 1;
- var2[0] = var0 - var3 * var1;
- return var3;
- }
- }
-
- private static final int floorDivide(long var0, int var2, int[] var3) {
- if (var0 >= 0L) {
- var3[0] = (int)(var0 % (long)var2);
- return (int)(var0 / (long)var2);
- } else {
- int var4 = (int)((var0 + 1L) / (long)var2 - 1L);
- var3[0] = (int)(var0 - (long)(var4 * var2));
- return var4;
- }
- }
-
- private static final int aggregateStamp(int var0, int var1) {
- return var0 != 0 && var1 != 0 ? Math.max(var0, var1) : 0;
- }
-
- private final int weekNumber(int var1, int var2) {
- int var3 = (var2 - ((Calendar)this).getFirstDayOfWeek() - var1 + 1) % 7;
- if (var3 < 0) {
- var3 += 7;
- }
-
- int var4 = (var1 + var3 - 1) / 7;
- if (7 - var3 >= ((Calendar)this).getMinimalDaysInFirstWeek()) {
- ++var4;
- }
-
- return var4;
- }
-
- private final int monthLength(int var1, int var2) {
- return this.isLeapYear(var2) ? LEAP_MONTH_LENGTH[var1] : MONTH_LENGTH[var1];
- }
-
- private final int monthLength(int var1) {
- int var2 = ((Calendar)this).internalGet(1);
- if (this.internalGetEra() == 0) {
- var2 = 1 - var2;
- }
-
- return this.monthLength(var1, var2);
- }
-
- private final int prevMonthLength(int var1) {
- return var1 > 1 ? this.monthLength(var1 - 1) : 31;
- }
-
- private final int yearLength(int var1) {
- return this.isLeapYear(var1) ? 366 : 365;
- }
-
- private final int yearLength() {
- return this.isLeapYear(((Calendar)this).internalGet(1)) ? 366 : 365;
- }
-
- private final void pinDayOfMonth() {
- int var1 = this.monthLength(((Calendar)this).internalGet(2));
- int var2 = ((Calendar)this).internalGet(5);
- if (var2 > var1) {
- ((Calendar)this).set(5, var1);
- }
-
- }
-
- private boolean validateFields() {
- for(int var1 = 0; var1 < 17; ++var1) {
- if (var1 != 5 && var1 != 6 && ((Calendar)this).isSet(var1) && !this.boundsCheck(((Calendar)this).internalGet(var1), var1)) {
- return false;
- }
- }
-
- if (((Calendar)this).isSet(5)) {
- int var2 = ((Calendar)this).internalGet(5);
- if (var2 < this.getMinimum(5) || var2 > this.monthLength(((Calendar)this).internalGet(2))) {
- return false;
- }
- }
-
- if (((Calendar)this).isSet(6)) {
- int var3 = ((Calendar)this).internalGet(6);
- if (var3 < 1 || var3 > this.yearLength()) {
- return false;
- }
- }
-
- if (((Calendar)this).isSet(8) && 0 == ((Calendar)this).internalGet(8)) {
- return false;
- } else {
- return true;
- }
- }
-
- private final boolean boundsCheck(int var1, int var2) {
- return var1 >= this.getMinimum(var2) && var1 <= this.getMaximum(var2);
- }
-
- private final long getEpochDay() {
- ((Calendar)this).complete();
- long var1 = super.time / 1000L + (long)((((Calendar)this).internalGet(15) + ((Calendar)this).internalGet(16)) / 1000);
- return floorDivide(var1, 86400L);
- }
-
- private final int internalGetEra() {
- return ((Calendar)this).isSet(0) ? ((Calendar)this).internalGet(0) : 1;
- }
- }
-