Skip to content

Commit

Permalink
Fixed bug# 5731.
Browse files Browse the repository at this point in the history
  • Loading branch information
jmdavis committed Mar 14, 2011
1 parent 31d47df commit 2a9e456
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions std/datetime.d
Expand Up @@ -8169,7 +8169,7 @@ assert(SysTime(DateTime(-4, 1, 5, 0, 0, 2),
if(_timezone.get is UTC())
return dateTime.toISOString() ~ fracSecToISOString(cast(int)hnsecs) ~ "Z";

immutable utcOffset = cast(int)convert!("hnsecs", "minutes")(stdTime - adjustedTime);
immutable utcOffset = cast(int)convert!("hnsecs", "minutes")(adjustedTime - stdTime);

return dateTime.toISOString() ~ fracSecToISOString(cast(int)hnsecs) ~ SimpleTimeZone.toISOString(utcOffset);
}
Expand Down Expand Up @@ -8197,6 +8197,14 @@ assert(SysTime(DateTime(-4, 1, 5, 0, 0, 2),
assertPred!"=="(SysTime(DateTime(9999, 7, 4, 23, 59, 59), FracSec.from!"hnsecs"(12)).toISOString(), "99990704T235959.0000012");
assertPred!"=="(SysTime(DateTime(10000, 10, 20, 1, 1, 1), FracSec.from!"hnsecs"(507890)).toISOString(), "+100001020T010101.050789");

assertPred!"=="(SysTime(DateTime(2012, 12, 21, 12, 12, 12),
new SimpleTimeZone(-360)).toISOString(),
"20121221T121212-06:00");

assertPred!"=="(SysTime(DateTime(2012, 12, 21, 12, 12, 12),
new SimpleTimeZone(420)).toISOString(),
"20121221T121212+07:00");

//Test B.C.
assertPred!"=="(SysTime(DateTime(0, 12, 31, 23, 59, 59), FracSec.from!"hnsecs"(9_999_999), UTC()).toISOString(), "00001231T235959.9999999Z");
assertPred!"=="(SysTime(DateTime(0, 12, 31, 23, 59, 59), FracSec.from!"hnsecs"(1), UTC()).toISOString(), "00001231T235959.0000001Z");
Expand Down Expand Up @@ -8303,7 +8311,7 @@ assert(SysTime(DateTime(-4, 1, 5, 0, 0, 2),
if(_timezone.get is UTC())
return dateTime.toISOExtendedString() ~ fracSecToISOString(cast(int)hnsecs) ~ "Z";

immutable utcOffset = cast(int)convert!("hnsecs", "minutes")(stdTime - adjustedTime);
immutable utcOffset = cast(int)convert!("hnsecs", "minutes")(adjustedTime - stdTime);

return dateTime.toISOExtendedString() ~ fracSecToISOString(cast(int)hnsecs) ~ SimpleTimeZone.toISOString(utcOffset);
}
Expand Down Expand Up @@ -8331,6 +8339,14 @@ assert(SysTime(DateTime(-4, 1, 5, 0, 0, 2),
assertPred!"=="(SysTime(DateTime(9999, 7, 4, 23, 59, 59), FracSec.from!"hnsecs"(12)).toISOExtendedString(), "9999-07-04T23:59:59.0000012");
assertPred!"=="(SysTime(DateTime(10000, 10, 20, 1, 1, 1), FracSec.from!"hnsecs"(507890)).toISOExtendedString(), "+10000-10-20T01:01:01.050789");

assertPred!"=="(SysTime(DateTime(2012, 12, 21, 12, 12, 12),
new SimpleTimeZone(-360)).toISOExtendedString(),
"2012-12-21T12:12:12-06:00");

assertPred!"=="(SysTime(DateTime(2012, 12, 21, 12, 12, 12),
new SimpleTimeZone(420)).toISOExtendedString(),
"2012-12-21T12:12:12+07:00");

//Test B.C.
assertPred!"=="(SysTime(DateTime(0, 12, 31, 23, 59, 59), FracSec.from!"hnsecs"(9_999_999), UTC()).toISOExtendedString(), "0000-12-31T23:59:59.9999999Z");
assertPred!"=="(SysTime(DateTime(0, 12, 31, 23, 59, 59), FracSec.from!"hnsecs"(1), UTC()).toISOExtendedString(), "0000-12-31T23:59:59.0000001Z");
Expand Down Expand Up @@ -8435,7 +8451,7 @@ assert(SysTime(DateTime(-4, 1, 5, 0, 0, 2),
if(_timezone.get is UTC())
return dateTime.toSimpleString() ~ fracSecToISOString(cast(int)hnsecs) ~ "Z";

immutable utcOffset = cast(int)convert!("hnsecs", "minutes")(stdTime - adjustedTime);
immutable utcOffset = cast(int)convert!("hnsecs", "minutes")(adjustedTime - stdTime);

return dateTime.toSimpleString() ~ fracSecToISOString(cast(int)hnsecs) ~ SimpleTimeZone.toISOString(utcOffset);
}
Expand Down Expand Up @@ -8463,6 +8479,14 @@ assert(SysTime(DateTime(-4, 1, 5, 0, 0, 2),
assertPred!"=="(SysTime(DateTime(9999, 7, 4, 23, 59, 59), FracSec.from!"hnsecs"(12)).toSimpleString(), "9999-Jul-04 23:59:59.0000012");
assertPred!"=="(SysTime(DateTime(10000, 10, 20, 1, 1, 1), FracSec.from!"hnsecs"(507890)).toSimpleString(), "+10000-Oct-20 01:01:01.050789");

assertPred!"=="(SysTime(DateTime(2012, 12, 21, 12, 12, 12),
new SimpleTimeZone(-360)).toSimpleString(),
"2012-Dec-21 12:12:12-06:00");

assertPred!"=="(SysTime(DateTime(2012, 12, 21, 12, 12, 12),
new SimpleTimeZone(420)).toSimpleString(),
"2012-Dec-21 12:12:12+07:00");

//Test B.C.
assertPred!"=="(SysTime(DateTime(0, 12, 31, 23, 59, 59), FracSec.from!"hnsecs"(9_999_999), UTC()).toSimpleString(), "0000-Dec-31 23:59:59.9999999Z");
assertPred!"=="(SysTime(DateTime(0, 12, 31, 23, 59, 59), FracSec.from!"hnsecs"(1), UTC()).toSimpleString(), "0000-Dec-31 23:59:59.0000001Z");
Expand Down

0 comments on commit 2a9e456

Please sign in to comment.