* {@link SnmpConstants#SNMP_ERROR_SUCCESS} if <code>dateAndTime</code>
* is valid or an appropriate SNMP error code if not.
*/
public static int validateDateAndTime(Variable dateAndTime) {
if (dateAndTime instanceof OctetString) {
OctetString os = (OctetString)dateAndTime;
if ((os.length() != 8) && (os.length() != 11)) {
return SnmpConstants.SNMP_ERROR_WRONG_LENGTH;
}
int month = (os.get(2) & 0xFF );
int date = (os.get(3) & 0xFF );
int hour = (os.get(4) & 0xFF );
int minute = (os.get(5) & 0xFF );
int second = (os.get(6) & 0xFF );
int deci = (os.get(7) & 0xFF );
if ((month < 1) || (month > 12) ||
(date < 1) || (date > 31) || (hour > 23) || (second > 59) ||
(minute > 59) || (deci > 9)) {
return SnmpConstants.SNMP_ERROR_WRONG_VALUE;
}
if (os.length() == 11) {
if ((os.get(8) != '+') && (os.get(8) != '-')) {
return SnmpConstants.SNMP_ERROR_WRONG_VALUE;
}
}
return SnmpConstants.SNMP_ERROR_SUCCESS;
}