Integer Overflow in DateTimeToTimeStamp function (Sysutils)

I had a problem with a program that has been widely tested, but recently, in two computers  I started getting the Integer Overflow exception at random times (I can't get a pattern) when i try to access some date routines like formatdatetime or now. Madexcept has traced the problem back to the DateTimeToTimeStamp function in SysUtils, but it´s in assembler and I don't really remember much from my asm classes to know whats happening. I've searched all over the internet for a solution or someone with a similar problem but i haven't found anything. I suspect it may be relaed to the regional settings or something like that.

Does any one have a clue about what's happening here?

This is an excerpt from the related madexcept log.


operating system  : Windows XP Service Pack 2 build 2600
processors        : 2x Intel(R) Pentium(R) 4 CPU 3.20GHz
physical memory   : 212/447 MB (free/total)
free disk space   : (C:) 35.03 GB
exception class   : EIntOverflow
exception message : Integer overflow.

Main ($980):
004574e5 +025 Station.exe SysUtils           DateTimeToTimeStamp
00457684 +01c Station.exe SysUtils           DecodeTime
007810d1 +025 Station.exe JvClock            TJvClock.GetTime
007822c7 +047 Station.exe JvClock            TJvClock.PaintTimeStr
00781701 +0ed Station.exe JvClock            TJvClock.TimerExpired
0077ff37 +01b Station.exe JvTimer            TJvTimer.Timer
00476511 +0fd Station.exe Classes            CheckSynchronize
004c9b6a +6b2 Station.exe Forms    7398 +153 TApplication.WndProc
00478360 +014 Station.exe Classes            StdWndProc
77d196c2 +00a USER32.dll                     DispatchMessageA
004ca294 +0fc Station.exe Forms    7651  +23 TApplication.ProcessMessage
004ca2ce +00a Station.exe Forms    7670   +1 TApplication.HandleMessage
004ca4ee +096 Station.exe Forms    7754  +16 TApplication.Run



Thank You
LVL 1
DissasterAsked:
Who is Participating?
 
Russell LibbyConnect With a Mentor Software Engineer, Advisory Commented:

The date time is obviously getting messed up, so couple of questions.

- Are you handling the OnGetTime event, and is it possible that the date / time value is getting messed up there?
- Have you tried placing a try / except handler in the TJvClock.GetTime method to allow you to log the value that is causing the exception?

The actual cause of the exception is this:

@@1:    DIV     IMSecsPerDay

And is caused by too large a number being passed in as a date time value. Also, any place where you are enabling / disabling the clock within an event handler that might call GetTime?

Regards,
Russell

0
 
Ivanov_GConnect With a Mentor Commented:
It is probably because different Regional Settings on the different computers. You can you Float (DateTime is Float) and the format it.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.