Try

ShowMessage(formatdatetime('HH:nn',Time2-Time1))

this will give 00:30 - regardless of the system locale etc

Chris.

----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, June 29, 2005 5:05 PM
Subject: RE: [delphi-en] differences between 2 time value


>
> Hi soonhuat ong,
>
> As stated by others, 12:30:00 AM is correct.  The difference between 14:30
> and 14:00 is 30 minutes.  When you format 30 minutes with the TimeToStr
> function, Delphi uses the LongTimeFormat global variable to format the
> time.  In most systems, the LongTimeFormat is "h:mm:ss AMPM".  So, 30
> minutes from midnight is "12:30:00 AM".  When you want is to show the time
> in military format.  Here are two ways for you to get "00:30" instead of
> "12:30:00 AM":
>
> 1. Change LongTimeFormat to 'hh:mm'.  This will affect all time formatting
> in your program.
>
> procedure TForm1.Button1Click(Sender: TObject);
> var Time1, Time2 : TTime;
> begin
>   Time1 := strToTime('14:00');
>   Time2 := strToTime('14:30');
>   LongTimeFormat:= 'hh:mm';
>   ShowMessage(TImeToStr(Time2 - TIme1));     {This will show "00:30"}
>   ShowMessage(TImeToStr(Time1 - Time2));     {This will show "00:30"}
> end;
>
> 2. Use FormatDateTime instead of TimeToStr.
>
> procedure TForm1.Button1Click(Sender: TObject);
> var Time1, Time2 : TTime;
> begin
>   Time1 := strToTime('14:00');
>   Time2 := strToTime('14:30');
>   ShowMessage(FormatDateTime('hh:mm', (Time2 - TIme1)));     {This will
> show "00:30"}
>   ShowMessage(FormatDateTime('hh:mm', (Time1 - TIme2)));     {This will
> show "00:30"}
> end;
>
> Hope this helps
> Raymond
>
>
>                       soonhuat ong
>                       <[EMAIL PROTECTED]
>                       .com>
>                       Sent by:
>                       [EMAIL PROTECTED]
>                       oups.com
>
>
>                       06/29/2005 02:45
>                       AM
>
>
>
> Sorry i mean Time3 - Time4. Anyway, TIme4- Time3 will generate the same
> result.
> I'll give my sample source code as following:
>
> procedure TForm1.Button1Click(Sender: TObject);
> var Time1, Time2 : TTime;
> begin
>   Time1 := strToTime('14:00');
>   Time2 := strToTime('14:30');
>   ShowMessage(TImeToStr(Time2 - TIme1));
>   ShowMessage(TImeToStr(Time1 - Time2));
> end;
>
> Both of the MessageBox give me the message : 12:30:00 AM .. All i want is
> 00:30, means 30 minutes differences
>
>
> Vahan Yoghoudjian <[EMAIL PROTECTED]> wrote:
>     Do you mean (Time4-Time3) or (Time3-Time4)?
>
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED]
Behalf
> Of soonhuat ong
> Sent: Wednesday, June 29, 2005 7:52 AM
> To: [email protected]
> Subject: [delphi-en] differences between 2 time value
>
>
>
> How do i calculate the differences between 2 time ?
> Let's say:
> Time1 = 13:00
> Time2 = 12:00
>
> The difference is 1:00 hour
>
> I try (Time1 - Time2), and it works fine..
> But when the total difference less than 1 hour, it give me difference
> result:
> For eg:
> Time3 = 14:30
> TIme4 = 14:00
>
> (Time4 - Time3) will give me 12:30 .. what i want is 00:30. ANy idea ??
>
>
> -----------------------------------------------------
> Home page: http://groups.yahoo.com/group/delphi-en/
> To unsubscribe: [EMAIL PROTECTED]
> Yahoo! Groups Links
>
>
>
>
>
>
>



-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED] 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/delphi-en/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to