Tcl Source Code

View Ticket
Login
Ticket UUID: 1988794
Title: clock scan parse errors in summertime
Type: Bug Version: obsolete: 8.4.19
Submitter: nobody Created on: 2008-06-09 10:48:18
Subsystem: 06. Time Measurement Assigned To: kennykb
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2008-06-24 09:20:08
Resolution: Invalid Closed By: sf-robot
    Closed on: 2008-06-24 02:20:08
Description:
TCL 8.4.19 on Windows XP
TCL 8.4.11 and .19 on Solaris SPARC

clock scan "x day y sec" gives parse errors in summertime between 22:00 and 22:59:59 an on the day of change to wintertime

# tclsh datebug.tcl
datebug.tcl:    Total   12      Passed  7       Skipped 0       Failed  5

All tests should run correctly.

Bug 1811495 - clock scan (possible?) discrepancy seems to be related

mailto:[email protected]
User Comments: sf-robot added on 2008-06-24 09:20:08:
Logged In: YES 
user_id=1312539
Originator: NO

This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).

kennykb added on 2008-06-10 08:39:56:
Logged In: YES 
user_id=99768
Originator: NO

I'm repeating your tests in 8.5, and assuming that you are in Germany,
so I'm using TCL_TZ=:Europe/Berlin and a de_de locale.

In 8.5.2, your first ten tests all function as you expect.

The next-to-last test appears to exercise a bug in your testing.
You are scanning for 22 hours 59 minutes 59 seconds from the
start date of 26 October 2008:

% expr 31+29+31+30+31+30+31+31+30+26+ 8*365 + 1
3221
% clock format [clock scan "3221 days" -base 946681200] -format {%X %x} -locale de_de
00:00:00 26.10.2008

To this quantity you are adding 22 hours 59 minutes 59 seconds, and apparently expecting
a result of 22:59:59 on the same day. 

% clock format [clock scan "3221 days 22 hours 59 minutes 59 seconds" -base 946681200] -format {%X %Z %x} -locale de_de
21:59:59 CET 26.10.2008

But Summer Time will have ended at 01:00 UTC on that day, according to

http://eur-lex.europa.eu/smartapi/cgi/sga_doc?smartapi!celexapi!prod!CELEXnumdoc&lg=EN&numdoc=32000L0084&model=guichett

So 22 hours 59 minutes from the given time is 21:59:59 by the clock.

Had you tested 2 hours 59 minutes 59 seconds (2 hours instead of 22), you would have indeed found the time at which Summer Time ends:

% clock format [clock scan "3221 days 2 hours 59 minutes 59 seconds" -base 946681200] -format {%X %Z %x} -locale de_de
02:59:59 CEST 26.10.2008
(200002852) 29 % clock format [clock scan "3221 days 3 hours" -base 946681200] -format {%X %Z %x} -locale de_de
02:00:00 CET 26.10.2008

Since the first ten of your tests function correctly in the current release, while the last two appear to reflect a misunderstanding of the time that the EU clocks change, I'm closing this bug.

kennykb added on 2008-06-10 07:49:20:
Logged In: YES 
user_id=99768
Originator: NO

Can you please give me the timezone in which these tests are supposed to fail?  I do see "failing" tests, but not the same set that you report.

nobody added on 2008-06-09 17:48:19:

File Added - 280727: datebug.tcl

Attachments: