package androidx.core.util; import androidx.annotation.RestrictTo; import java.io.PrintWriter; @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public final class TimeUtils { @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public static final int HUNDRED_DAY_FIELD_LEN = 19; private static final int SECONDS_PER_DAY = 86400; private static final int SECONDS_PER_HOUR = 3600; private static final int SECONDS_PER_MINUTE = 60; private static char[] sFormatStr = new char[24]; private static final Object sFormatSync = new Object(); private TimeUtils() { } private static int accumField(int i, int i2, boolean z2, int i3) { if (i > 99 || (z2 && i3 >= 3)) { return i2 + 3; } if (i > 9 || (z2 && i3 >= 2)) { return i2 + 2; } if (z2 || i > 0) { return i2 + 1; } return 0; } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public static void formatDuration(long j, long j2, PrintWriter printWriter) { if (j == 0) { printWriter.print("--"); } else { formatDuration(j - j2, printWriter, 0); } } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public static void formatDuration(long j, PrintWriter printWriter) { formatDuration(j, printWriter, 0); } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public static void formatDuration(long j, PrintWriter printWriter, int i) { synchronized (sFormatSync) { printWriter.print(new String(sFormatStr, 0, formatDurationLocked(j, i))); } } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public static void formatDuration(long j, StringBuilder sb) { synchronized (sFormatSync) { sb.append(sFormatStr, 0, formatDurationLocked(j, 0)); } } private static int formatDurationLocked(long j, int i) { char c2; int i2; int i3; int i4; int i5; int i6; long j2 = j; if (sFormatStr.length < i) { sFormatStr = new char[i]; } char[] cArr = sFormatStr; int i7 = (j2 > 0 ? 1 : (j2 == 0 ? 0 : -1)); if (i7 == 0) { int i8 = i - 1; while (i8 > 0) { cArr[0] = ' '; } cArr[0] = '0'; return 1; } if (i7 > 0) { c2 = '+'; } else { c2 = '-'; j2 = -j2; } int i9 = (int) (j2 % 1000); int floor = (int) Math.floor((double) (j2 / 1000)); if (floor > 86400) { i2 = floor / 86400; floor -= 86400 * i2; } else { i2 = 0; } if (floor > 3600) { i3 = floor / 3600; floor -= i3 * 3600; } else { i3 = 0; } if (floor > 60) { int i10 = floor / 60; i4 = floor - (i10 * 60); i5 = i10; } else { i4 = floor; i5 = 0; } if (i != 0) { int accumField = accumField(i2, 1, false, 0); int accumField2 = accumField + accumField(i3, 1, accumField > 0, 2); int accumField3 = accumField2 + accumField(i5, 1, accumField2 > 0, 2); int accumField4 = accumField3 + accumField(i4, 1, accumField3 > 0, 2); i6 = 0; for (int accumField5 = accumField(i9, 2, true, accumField4 > 0 ? 3 : 0) + 1 + accumField4; accumField5 < i; accumField5++) { cArr[i6] = ' '; i6++; } } else { i6 = 0; } cArr[i6] = c2; int i11 = i6 + 1; boolean z2 = i != 0; int printField = printField(cArr, i2, 'd', i11, false, 0); int printField2 = printField(cArr, i3, 'h', printField, printField != i11, z2 ? 2 : 0); int printField3 = printField(cArr, i5, 'm', printField2, printField2 != i11, z2 ? 2 : 0); int printField4 = printField(cArr, i4, 's', printField3, printField3 != i11, z2 ? 2 : 0); int printField5 = printField(cArr, i9, 'm', printField4, true, (!z2 || printField4 == i11) ? 0 : 3); cArr[printField5] = 's'; return printField5 + 1; } private static int printField(char[] cArr, int i, char c2, int i2, boolean z2, int i3) { int i4; if (!z2 && i <= 0) { return i2; } if ((!z2 || i3 < 3) && i <= 99) { i4 = i2; } else { int i5 = i / 100; cArr[i2] = (char) (i5 + 48); i4 = i2 + 1; i -= i5 * 100; } if ((z2 && i3 >= 2) || i > 9 || i2 != i4) { int i6 = i / 10; cArr[i4] = (char) (i6 + 48); i4++; i -= i6 * 10; } cArr[i4] = (char) (i + 48); int i7 = i4 + 1; cArr[i7] = c2; return i7 + 1; } }