mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
55 lines
2.1 KiB
C++
55 lines
2.1 KiB
C++
#include <Core/Core.h>
|
|
|
|
using namespace Upp;
|
|
|
|
#define TEST(a, b) \
|
|
{ Time av = a; \
|
|
LOG(#a << " -> " << av); \
|
|
LOG(b); \
|
|
ASSERT(a == b); \
|
|
LOG("==================="); }
|
|
|
|
CONSOLE_APP_MAIN
|
|
{
|
|
StdLogSetup(LOG_COUT|LOG_FILE);
|
|
|
|
DUMP(GetTimeZoneText());
|
|
|
|
DUMP(GetTimeZone());
|
|
Date d = GetSysDate();
|
|
if(d < Date(d.year, 3, 20) && d > Date(d.year, 10, 30)) {
|
|
LOG("Normal CZ time");
|
|
ASSERT(GetTimeZone() == 60);
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +1200"), Time(2014, 3, 25, 23, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +1000"), Time(2014, 3, 25, 21, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +0100"), Time(2014, 3, 25, 12, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +0000"), Time(2014, 3, 25, 11, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 -0100"), Time(2014, 3, 25, 10, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 -1000"), Time(2014, 3, 25, 1, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 -1200"), Time(2014, 3, 24, 23, 1, 15));
|
|
}
|
|
if(d > Date(d.year, 3, 30) && d < Date(d.year, 10, 20)) {
|
|
LOG("Daylight saving CZ time");
|
|
ASSERT(GetTimeZone() == 120);
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +1200"), Time(2014, 3, 25, 2, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +1000"), Time(2014, 3, 25, 4, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +0100"), Time(2014, 3, 25, 13, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 +0000"), Time(2014, 3, 25, 14, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 -0100"), Time(2014, 3, 25, 15, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 -1000"), Time(2014, 3, 26, 0, 1, 15));
|
|
TEST(ScanWwwTime("Tue, 25 Mar 2014 12:01:15 -1200"), Time(2014, 3, 26, 2, 1, 15));
|
|
}
|
|
ASSERT(ScanTimeZone("-1000") == -600);
|
|
DUMP(ScanTimeZone(GetTimeZoneText()));
|
|
ASSERT(ScanTimeZone("+1000") == 600);
|
|
DUMP(WwwFormat(GetSysTime()));
|
|
|
|
for(int i = 0; i < 24 * 60 * 60 * 400; i += 133) {
|
|
if(i % 1000 * 133 == 0)
|
|
LOG("Done " << i);
|
|
Time tm = Time(2010, 1, 1) + i;
|
|
ASSERT(ScanWwwTime(WwwFormat(tm)) == tm);
|
|
}
|
|
|
|
LOG("================== OK");
|
|
}
|