Does a day start at 1:00 AM everwhere?

Ken Ray kray at sonsothunder.com
Fri Oct 27 10:49:58 EDT 2006


On 10/27/06 7:52 AM, "Mark Powell" <mark_powell at symantec.com> wrote:

> I have a user-specified date.  I want to convert it to seconds and
> factor in 86400 to establish the range of seconds for that date, so that
> I can compare a file's creation date to determine whether that file was
> created on that specified day.  The problem is I am not sure what is
> used as the starting point for a date's seconds counter.  At 6:42 this
> morning, I ran this:
> 
>   put the short date into theDate
>   convert theDate to seconds
>   put ((the seconds - theDate) / 3600)
> 
> and got 4.710556, which suggests that a date starts at 1:00 AM and not
> midnight.  Is this accurate?  And more importantly, is this the way the
> computation would be handled on any client machine anywhere?

Welcome to the wonderful world of dates in Revolution!

;-)

Seriously - Many of us have struggled with date arithmetic in Rev as it
relates to other parts of the world. The short answer is "no", it is not
always 1:00 AM everywhere when you convert a date to seconds and back again.
In fact for me, I get 2:00 AM.

Date conversions give you different results depending on a number of
factors: is Daylight Saving Time (DST) or Summer Hours currently being
observed? What hemisphere are you on? Are you looking at a date that is
"across" a DST boundary (such as the current date being in March and you're
looking at a date in May, which is across the DST "boundary" in April).

I wish it were easier, but it's not... in your *specific* application,
though, if you're just trying to compare one date to another, you can strip
off the time from the file creation date, and then convert the user-entered
date and the date from the file creation to seconds and compare - they
should be the same:

  put fld "UserDate" into tUserDate
  put fld "FileCreationDateTime" into tFileDateTime
  put word 1 of tFileDateTime into tFileDate
   -- assumes a datetime where the date and time are separate by a space
  convert tUserDate to seconds
  convert tFileDate to seconds
  if tUserDate = tFileDate then
    answer "Same day"
  else
    answer "Different day"
  end if

Will this work for you?

Ken Ray
Sons of Thunder Software, Inc.
Web site: http://www.sonsothunder.com/
Email: kray at sonsothunder.com




More information about the use-livecode mailing list