BasicGJChronology.smali

.class abstract Lorg/joda/time/chrono/BasicGJChronology;
.super Lorg/joda/time/chrono/BasicChronology;
.source "BasicGJChronology.java"


# static fields
.field private static final FEB_29:J = 0x12fd73400L

.field private static final MAX_DAYS_PER_MONTH_ARRAY:[I

.field private static final MAX_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

.field private static final MIN_DAYS_PER_MONTH_ARRAY:[I

.field private static final MIN_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

.field private static final serialVersionUID:J = 0x7d53cd7eccL


# direct methods
.method static constructor <clinit>()V
    .registers 9

    const/16 v0, 0xc

    new-array v1, v0, [I

    .line 42
    fill-array-data v1, :array_42

    sput-object v1, Lorg/joda/time/chrono/BasicGJChronology;->MIN_DAYS_PER_MONTH_ARRAY:[I

    new-array v1, v0, [I

    .line 45
    fill-array-data v1, :array_5e

    sput-object v1, Lorg/joda/time/chrono/BasicGJChronology;->MAX_DAYS_PER_MONTH_ARRAY:[I

    new-array v1, v0, [J

    .line 53
    sput-object v1, Lorg/joda/time/chrono/BasicGJChronology;->MIN_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

    new-array v0, v0, [J

    .line 54
    sput-object v0, Lorg/joda/time/chrono/BasicGJChronology;->MAX_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

    const-wide/16 v0, 0x0

    const/4 v2, 0x0

    move-wide v2, v0

    const/4 v4, 0x0

    :goto_1d
    const/16 v5, 0xb

    if-ge v4, v5, :cond_40

    .line 59
    sget-object v5, Lorg/joda/time/chrono/BasicGJChronology;->MIN_DAYS_PER_MONTH_ARRAY:[I

    aget v5, v5, v4

    int-to-long v5, v5

    const-wide/32 v7, 0x5265c00

    mul-long v5, v5, v7

    add-long/2addr v0, v5

    .line 62
    sget-object v5, Lorg/joda/time/chrono/BasicGJChronology;->MIN_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

    add-int/lit8 v6, v4, 0x1

    aput-wide v0, v5, v6

    .line 64
    sget-object v5, Lorg/joda/time/chrono/BasicGJChronology;->MAX_DAYS_PER_MONTH_ARRAY:[I

    aget v4, v5, v4

    int-to-long v4, v4

    mul-long v4, v4, v7

    add-long/2addr v2, v4

    .line 67
    sget-object v4, Lorg/joda/time/chrono/BasicGJChronology;->MAX_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

    aput-wide v2, v4, v6

    move v4, v6

    goto :goto_1d

    :cond_40
    return-void

    nop

    :array_42
    .array-data 4
        0x1f
        0x1c
        0x1f
        0x1e
        0x1f
        0x1e
        0x1f
        0x1f
        0x1e
        0x1f
        0x1e
        0x1f
    .end array-data

    :array_5e
    .array-data 4
        0x1f
        0x1d
        0x1f
        0x1e
        0x1f
        0x1e
        0x1f
        0x1f
        0x1e
        0x1f
        0x1e
        0x1f
    .end array-data
.end method

.method constructor <init>(Lorg/joda/time/Chronology;Ljava/lang/Object;I)V
    .registers 4

    .line 75
    invoke-direct {p0, p1, p2, p3}, Lorg/joda/time/chrono/BasicChronology;-><init>(Lorg/joda/time/Chronology;Ljava/lang/Object;I)V

    return-void
.end method


# virtual methods
.method getDaysInMonthMax(I)I
    .registers 3

    .line 134
    sget-object v0, Lorg/joda/time/chrono/BasicGJChronology;->MAX_DAYS_PER_MONTH_ARRAY:[I

    add-int/lit8 p1, p1, -0x1

    aget p1, v0, p1

    return p1
.end method

.method getDaysInMonthMaxForSet(JI)I
    .registers 6

    const/16 v0, 0x1c

    if-gt p3, v0, :cond_7

    const/4 v1, 0x1

    if-ge p3, v1, :cond_b

    .line 139
    :cond_7
    invoke-virtual {p0, p1, p2}, Lorg/joda/time/chrono/BasicGJChronology;->getDaysInMonthMax(J)I

    move-result v0

    :cond_b
    return v0
.end method

.method getDaysInYearMonth(II)I
    .registers 3

    .line 125
    invoke-virtual {p0, p1}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result p1

    if-eqz p1, :cond_d

    .line 126
    sget-object p1, Lorg/joda/time/chrono/BasicGJChronology;->MAX_DAYS_PER_MONTH_ARRAY:[I

    add-int/lit8 p2, p2, -0x1

    aget p1, p1, p2

    return p1

    .line 128
    :cond_d
    sget-object p1, Lorg/joda/time/chrono/BasicGJChronology;->MIN_DAYS_PER_MONTH_ARRAY:[I

    add-int/lit8 p2, p2, -0x1

    aget p1, p1, p2

    return p1
.end method

.method getMonthOfYear(JI)I
    .registers 16

    .line 93
    invoke-virtual {p0, p3}, Lorg/joda/time/chrono/BasicGJChronology;->getYearMillis(I)J

    move-result-wide v0

    sub-long/2addr p1, v0

    const/16 v0, 0xa

    shr-long/2addr p1, v0

    long-to-int p2, p1

    .line 98
    invoke-virtual {p0, p3}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result p1

    const/4 p3, 0x2

    const/4 v1, 0x3

    const/4 v2, 0x5

    const/4 v3, 0x6

    const/16 v4, 0x8

    const/16 v5, 0x9

    const/16 v6, 0xb

    const/16 v7, 0xc

    const/4 v8, 0x1

    const/4 v9, 0x4

    const/4 v10, 0x7

    const v11, 0x27e949

    if-eqz p1, :cond_5d

    const p1, 0xea515a

    if-ge p2, p1, :cond_40

    const p1, 0x7528ad

    if-ge p2, p1, :cond_34

    if-ge p2, v11, :cond_2e

    goto :goto_69

    :cond_2e
    const p1, 0x4d3f64

    if-ge p2, p1, :cond_72

    goto :goto_70

    :cond_34
    const p1, 0x9bc85f

    if-ge p2, p1, :cond_3a

    goto :goto_79

    :cond_3a
    const p1, 0xc3b1a8

    if-ge p2, p1, :cond_82

    goto :goto_80

    :cond_40
    const p1, 0x160c39e

    if-ge p2, p1, :cond_51

    const p1, 0x1123aa3

    if-ge p2, p1, :cond_4b

    goto :goto_8e

    :cond_4b
    const p1, 0x13a23ec

    if-ge p2, p1, :cond_98

    goto :goto_95

    :cond_51
    const p1, 0x188ace7

    if-ge p2, p1, :cond_57

    goto :goto_ab

    :cond_57
    const p1, 0x1af4c99

    if-ge p2, p1, :cond_a9

    goto :goto_a6

    :cond_5d
    const p1, 0xe907c3

    if-ge p2, p1, :cond_84

    const p1, 0x73df16

    if-ge p2, p1, :cond_74

    if-ge p2, v11, :cond_6b

    :goto_69
    const/4 v0, 0x1

    goto :goto_ab

    :cond_6b
    const p1, 0x4bf5cd

    if-ge p2, p1, :cond_72

    :goto_70
    const/4 v0, 0x2

    goto :goto_ab

    :cond_72
    const/4 v0, 0x3

    goto :goto_ab

    :cond_74
    const p1, 0x9a7ec8

    if-ge p2, p1, :cond_7b

    :goto_79
    const/4 v0, 0x4

    goto :goto_ab

    :cond_7b
    const p1, 0xc26811

    if-ge p2, p1, :cond_82

    :goto_80
    const/4 v0, 0x5

    goto :goto_ab

    :cond_82
    const/4 v0, 0x6

    goto :goto_ab

    :cond_84
    const p1, 0x15f7a07

    if-ge p2, p1, :cond_9b

    const p1, 0x110f10c

    if-ge p2, p1, :cond_90

    :goto_8e
    const/4 v0, 0x7

    goto :goto_ab

    :cond_90
    const p1, 0x138da55

    if-ge p2, p1, :cond_98

    :goto_95
    const/16 v0, 0x8

    goto :goto_ab

    :cond_98
    const/16 v0, 0x9

    goto :goto_ab

    :cond_9b
    const p1, 0x1876350

    if-ge p2, p1, :cond_a1

    goto :goto_ab

    :cond_a1
    const p1, 0x1ae0302

    if-ge p2, p1, :cond_a9

    :goto_a6
    const/16 v0, 0xb

    goto :goto_ab

    :cond_a9
    const/16 v0, 0xc

    :goto_ab
    return v0
.end method

.method getTotalMillisByYearMonth(II)J
    .registers 5

    .line 144
    invoke-virtual {p0, p1}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result p1

    if-eqz p1, :cond_d

    .line 145
    sget-object p1, Lorg/joda/time/chrono/BasicGJChronology;->MAX_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

    add-int/lit8 p2, p2, -0x1

    aget-wide v0, p1, p2

    return-wide v0

    .line 147
    :cond_d
    sget-object p1, Lorg/joda/time/chrono/BasicGJChronology;->MIN_TOTAL_MILLIS_BY_MONTH_ARRAY:[J

    add-int/lit8 p2, p2, -0x1

    aget-wide v0, p1, p2

    return-wide v0
.end method

.method getYearDifference(JJ)J
    .registers 12

    .line 153
    invoke-virtual {p0, p1, p2}, Lorg/joda/time/chrono/BasicGJChronology;->getYear(J)I

    move-result v0

    .line 154
    invoke-virtual {p0, p3, p4}, Lorg/joda/time/chrono/BasicGJChronology;->getYear(J)I

    move-result v1

    .line 157
    invoke-virtual {p0, v0}, Lorg/joda/time/chrono/BasicGJChronology;->getYearMillis(I)J

    move-result-wide v2

    sub-long/2addr p1, v2

    .line 158
    invoke-virtual {p0, v1}, Lorg/joda/time/chrono/BasicGJChronology;->getYearMillis(I)J

    move-result-wide v2

    sub-long/2addr p3, v2

    const-wide v2, 0x12fd73400L

    cmp-long v4, p3, v2

    if-ltz v4, :cond_37

    .line 162
    invoke-virtual {p0, v1}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result v4

    const-wide/32 v5, 0x5265c00

    if-eqz v4, :cond_2c

    .line 163
    invoke-virtual {p0, v0}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result v2

    if-nez v2, :cond_37

    sub-long/2addr p3, v5

    goto :goto_37

    :cond_2c
    cmp-long v4, p1, v2

    if-ltz v4, :cond_37

    .line 166
    invoke-virtual {p0, v0}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result v2

    if-eqz v2, :cond_37

    sub-long/2addr p1, v5

    :cond_37
    :goto_37
    sub-int/2addr v0, v1

    cmp-long v1, p1, p3

    if-gez v1, :cond_3e

    add-int/lit8 v0, v0, -0x1

    :cond_3e
    int-to-long p1, v0

    return-wide p1
.end method

.method isLeapDay(J)Z
    .registers 5

    .line 81
    invoke-virtual {p0}, Lorg/joda/time/chrono/BasicGJChronology;->dayOfMonth()Lorg/joda/time/DateTimeField;

    move-result-object v0

    invoke-virtual {v0, p1, p2}, Lorg/joda/time/DateTimeField;->get(J)I

    move-result v0

    const/16 v1, 0x1d

    if-ne v0, v1, :cond_18

    invoke-virtual {p0}, Lorg/joda/time/chrono/BasicGJChronology;->monthOfYear()Lorg/joda/time/DateTimeField;

    move-result-object v0

    invoke-virtual {v0, p1, p2}, Lorg/joda/time/DateTimeField;->isLeap(J)Z

    move-result p1

    if-eqz p1, :cond_18

    const/4 p1, 0x1

    goto :goto_19

    :cond_18
    const/4 p1, 0x0

    :goto_19
    return p1
.end method

.method setYear(JI)J
    .registers 6

    .line 180
    invoke-virtual {p0, p1, p2}, Lorg/joda/time/chrono/BasicGJChronology;->getYear(J)I

    move-result v0

    .line 181
    invoke-virtual {p0, p1, p2, v0}, Lorg/joda/time/chrono/BasicGJChronology;->getDayOfYear(JI)I

    move-result v1

    .line 182
    invoke-virtual {p0, p1, p2}, Lorg/joda/time/chrono/BasicGJChronology;->getMillisOfDay(J)I

    move-result p1

    const/16 p2, 0x3b

    if-le v1, p2, :cond_27

    .line 185
    invoke-virtual {p0, v0}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result p2

    if-eqz p2, :cond_1f

    .line 187
    invoke-virtual {p0, p3}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result p2

    if-nez p2, :cond_27

    add-int/lit8 v1, v1, -0x1

    goto :goto_27

    .line 193
    :cond_1f
    invoke-virtual {p0, p3}, Lorg/joda/time/chrono/BasicGJChronology;->isLeapYear(I)Z

    move-result p2

    if-eqz p2, :cond_27

    add-int/lit8 v1, v1, 0x1

    :cond_27
    :goto_27
    const/4 p2, 0x1

    .line 200
    invoke-virtual {p0, p3, p2, v1}, Lorg/joda/time/chrono/BasicGJChronology;->getYearMonthDayMillis(III)J

    move-result-wide p2

    int-to-long v0, p1

    add-long/2addr p2, v0

    return-wide p2
.end method