mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Bug
- Correct a DST error in date handling.
This commit is contained in:
parent
d52eebaa66
commit
065cb2ef01
2 changed files with 25 additions and 19 deletions
|
@ -633,7 +633,7 @@ void ISO8601d::resolve ()
|
||||||
else if (! offset)
|
else if (! offset)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_TM_GMTOFF
|
#ifdef HAVE_TM_GMTOFF
|
||||||
offset = local_now->tm_gmtoff;
|
offset = local_now->tm_gmtoff - (local_now->tm_isdst == 1 ? 3600 : 0);
|
||||||
#else
|
#else
|
||||||
// TODO Umm...
|
// TODO Umm...
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -91,21 +91,24 @@ int main (int argc, char** argv)
|
||||||
int local_s = (local_now->tm_hour * 3600) +
|
int local_s = (local_now->tm_hour * 3600) +
|
||||||
(local_now->tm_min * 60) +
|
(local_now->tm_min * 60) +
|
||||||
local_now->tm_sec;
|
local_now->tm_sec;
|
||||||
local_now->tm_hour = 0;
|
local_now->tm_hour = 0;
|
||||||
local_now->tm_min = 0;
|
local_now->tm_min = 0;
|
||||||
local_now->tm_sec = 0;
|
local_now->tm_sec = 0;
|
||||||
|
local_now->tm_isdst = -1;
|
||||||
time_t local = mktime (local_now);
|
time_t local = mktime (local_now);
|
||||||
std::cout << "# local midnight today " << local << "\n";
|
std::cout << "# local midnight today " << local << "\n";
|
||||||
|
|
||||||
local_now->tm_year = 2013 - 1900;
|
local_now->tm_year = 2013 - 1900;
|
||||||
local_now->tm_mon = 12 - 1;
|
local_now->tm_mon = 12 - 1;
|
||||||
local_now->tm_mday = 6;
|
local_now->tm_mday = 6;
|
||||||
|
local_now->tm_isdst = 0;
|
||||||
time_t local6 = mktime (local_now);
|
time_t local6 = mktime (local_now);
|
||||||
std::cout << "# local midnight 2013-12-06 " << local6 << "\n";
|
std::cout << "# local midnight 2013-12-06 " << local6 << "\n";
|
||||||
|
|
||||||
local_now->tm_year = 2013 - 1900;
|
local_now->tm_year = 2013 - 1900;
|
||||||
local_now->tm_mon = 12 - 1;
|
local_now->tm_mon = 12 - 1;
|
||||||
local_now->tm_mday = 1;
|
local_now->tm_mday = 1;
|
||||||
|
local_now->tm_isdst = 0;
|
||||||
time_t local1 = mktime (local_now);
|
time_t local1 = mktime (local_now);
|
||||||
std::cout << "# local midnight 2013-12-01 " << local1 << "\n";
|
std::cout << "# local midnight 2013-12-01 " << local1 << "\n";
|
||||||
|
|
||||||
|
@ -113,21 +116,24 @@ int main (int argc, char** argv)
|
||||||
int utc_s = (utc_now->tm_hour * 3600) +
|
int utc_s = (utc_now->tm_hour * 3600) +
|
||||||
(utc_now->tm_min * 60) +
|
(utc_now->tm_min * 60) +
|
||||||
utc_now->tm_sec;
|
utc_now->tm_sec;
|
||||||
utc_now->tm_hour = 0;
|
utc_now->tm_hour = 0;
|
||||||
utc_now->tm_min = 0;
|
utc_now->tm_min = 0;
|
||||||
utc_now->tm_sec = 0;
|
utc_now->tm_sec = 0;
|
||||||
|
utc_now->tm_isdst = -1;
|
||||||
time_t utc = timegm (utc_now);
|
time_t utc = timegm (utc_now);
|
||||||
std::cout << "# utc midnight today " << utc << "\n";
|
std::cout << "# utc midnight today " << utc << "\n";
|
||||||
|
|
||||||
utc_now->tm_year = 2013 - 1900;
|
utc_now->tm_year = 2013 - 1900;
|
||||||
utc_now->tm_mon = 12 - 1;
|
utc_now->tm_mon = 12 - 1;
|
||||||
utc_now->tm_mday = 6;
|
utc_now->tm_mday = 6;
|
||||||
|
utc_now->tm_isdst = 0;
|
||||||
time_t utc6 = timegm (utc_now);
|
time_t utc6 = timegm (utc_now);
|
||||||
std::cout << "# utc midnight 2013-12-06 " << utc6 << "\n";
|
std::cout << "# utc midnight 2013-12-06 " << utc6 << "\n";
|
||||||
|
|
||||||
utc_now->tm_year = 2013 - 1900;
|
utc_now->tm_year = 2013 - 1900;
|
||||||
utc_now->tm_mon = 12 - 1;
|
utc_now->tm_mon = 12 - 1;
|
||||||
utc_now->tm_mday = 1;
|
utc_now->tm_mday = 1;
|
||||||
|
utc_now->tm_isdst = 0;
|
||||||
time_t utc1 = timegm (utc_now);
|
time_t utc1 = timegm (utc_now);
|
||||||
std::cout << "# utc midnight 2013-12-01 " << utc1 << "\n";
|
std::cout << "# utc midnight 2013-12-01 " << utc1 << "\n";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue