public void TestDateTime()
{
DateTime[] ranges = {
new DateTime(1, 1, 1, 0, 0, 0, DateTimeKind.Utc),
new DateTime(100, 1, 1, 0, 0, 0, DateTimeKind.Utc),
new DateTime(1998, 1, 1, 0, 0, 0, DateTimeKind.Utc),
new DateTime(2030, 1, 1, 0, 0, 0, DateTimeKind.Utc),
new DateTime(9998, 1, 1, 0, 0, 0, DateTimeKind.Utc),
new DateTime(9999, 12, 31, 23, 59, 59, DateTimeKind.Utc)
};
for (var i = 0; i < ranges.Length; i += 2) {
DateTime j = ranges[i];
while (true) {
DateTime j2 = j.AddMilliseconds(200);
CBORTestCommon.AssertSer(
CBORObject.FromObject(j),
"0(\"" + DateTimeToString(j) + "\")");
CBORTestCommon.AssertSer(
CBORObject.FromObject(j2),
"0(\"" + DateTimeToString(j2) + "\")");
if (j >= ranges[i + 1]) {
break;
}
try {
j = j.AddHours(10);
} catch (ArgumentOutOfRangeException) {
// Can't add more hours, so break
break;
}
}
}
}