package org.snmp4j.agent.mo.snmp;

import java.util.GregorianCalendar;
import java.util.TimeZone;
import org.snmp4j.agent.MOAccess;
import org.snmp4j.agent.mo.MOMutableColumn;
import org.snmp4j.agent.mo.MOScalar;
import org.snmp4j.agent.request.SubRequest;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.Variable;

/* JADX INFO: loaded from: classes.dex */
public class DateAndTime<T extends OctetString> extends MOMutableColumn<T> {
    public DateAndTime(int i2, MOAccess mOAccess, OctetString octetString, boolean z) {
        super(i2, 4, mOAccess, octetString, z);
    }

    public static MOScalar<OctetString> createMOScalar(OID oid, MOAccess mOAccess, OctetString octetString, final boolean z) {
        return new MOScalar<OctetString>(oid, mOAccess, octetString) { // from class: org.snmp4j.agent.mo.snmp.DateAndTime.1
            @Override // org.snmp4j.agent.mo.MOScalar
            public int isValueOK(SubRequest subRequest) {
                return DateAndTime.validateDateAndTime(subRequest.getVariableBinding().getVariable());
            }

            @Override // org.snmp4j.agent.mo.MOScalar
            public OctetString getValue() {
                return z ? DateAndTime.makeDateAndTime(new GregorianCalendar()) : (OctetString) super.getValue();
            }
        };
    }

    public static GregorianCalendar makeCalendar(OctetString octetString) {
        int i2 = ((octetString.get(0) & 255) * 256) + (octetString.get(1) & 255);
        int i3 = octetString.get(2) & 255;
        int i4 = octetString.get(3) & 255;
        int i5 = octetString.get(4) & 255;
        int i6 = octetString.get(5) & 255;
        int i7 = octetString.get(6) & 255;
        int i8 = octetString.get(7) & 255;
        if (octetString.length() != 11) {
            GregorianCalendar gregorianCalendar = new GregorianCalendar(i2, i3 - 1, i4, i5, i6, i7);
            gregorianCalendar.set(14, i8 * 100);
            return gregorianCalendar;
        }
        GregorianCalendar gregorianCalendar2 = new GregorianCalendar(TimeZone.getTimeZone(String.format("GMT%c%02d:%02d", Byte.valueOf(octetString.get(8)), Byte.valueOf(octetString.get(9)), Byte.valueOf(octetString.get(10)))));
        gregorianCalendar2.set(i2, i3 - 1, i4, i5, i6, i7);
        gregorianCalendar2.set(14, i8 * 100);
        return gregorianCalendar2;
    }

    public static OctetString makeDateAndTime(GregorianCalendar gregorianCalendar) {
        return makeDateAndTime(gregorianCalendar, new OctetString());
    }

    public static int validateDateAndTime(Variable variable) {
        if (!(variable instanceof OctetString)) {
            return 7;
        }
        OctetString octetString = (OctetString) variable;
        if (octetString.length() != 8 && octetString.length() != 11) {
            return 8;
        }
        int i2 = octetString.get(2) & 255;
        int i3 = octetString.get(3) & 255;
        int i4 = octetString.get(4) & 255;
        int i5 = octetString.get(5) & 255;
        int i6 = octetString.get(6) & 255;
        int i7 = octetString.get(7) & 255;
        if (i2 < 1 || i2 > 12 || i3 < 1 || i3 > 31 || i4 > 23 || i6 > 59 || i5 > 59 || i7 > 9) {
            return 10;
        }
        return (octetString.length() != 11 || octetString.get(8) == 43 || octetString.get(8) == 45) ? 0 : 10;
    }

    @Override // org.snmp4j.agent.mo.MOMutableColumn
    public synchronized int validate(Variable variable, Variable variable2) {
        return validateDateAndTime(variable);
    }

    public DateAndTime(int i2, MOAccess mOAccess, OctetString octetString) {
        super(i2, 4, mOAccess, octetString);
    }

    public static <T extends OctetString> T makeDateAndTime(GregorianCalendar gregorianCalendar, T t) {
        t.append((byte) (gregorianCalendar.get(1) / 256));
        t.append((byte) (gregorianCalendar.get(1) % 256));
        t.append((byte) (gregorianCalendar.get(2) + 1));
        t.append((byte) gregorianCalendar.get(5));
        t.append((byte) gregorianCalendar.get(11));
        t.append((byte) gregorianCalendar.get(12));
        t.append((byte) gregorianCalendar.get(13));
        t.append((byte) (gregorianCalendar.get(14) / 100));
        if (gregorianCalendar.getTimeZone() != null) {
            TimeZone timeZone = gregorianCalendar.getTimeZone();
            t.append(timeZone.getRawOffset() >= 0 ? "+" : "-");
            t.append((byte) Math.abs(timeZone.getOffset(gregorianCalendar.getTimeInMillis()) / 3600000));
            t.append((byte) (Math.abs(timeZone.getOffset(gregorianCalendar.getTimeInMillis()) % 3600000) / 60000));
        }
        return t;
    }
}
