# [erlang-questions] How do I compute daytime difference properly?

Igor Ribeiro Sucupira <>
Mon May 5 20:56:33 CEST 2008

```I suppose the problems with time_difference are related to daylight
savings and such. If I'm right, there's no point in reimplementing the
algorithm if you don't address those problems.

Igor.

On Mon, May 5, 2008 at 3:07 PM, Greg Burri <> wrote:
> Hi,
>  Maybe like this :
>
>  delta_date_ms(D1, D2) ->
>    1000000000 * abs(element(1, D1) - element(1, D2)) + 1000 *
>  abs(element(2, D1) - element(2, D2)) + trunc(abs(element(3, D1) -
>  element(3, D2)) / 1000).
>
>
>  /Greg
>
>
>
>  On Sat, May 3, 2008 at 9:10 PM, Igor Ribeiro Sucupira <> wrote:
>  > I think there's no easier way of doing that.
>  >
>  >  2008/5/3 Kirill Zaborski <>:
>  >
>  >
>  > >
>  >  > Reading calendar module documentation I see the note:
>  >  > "For computing differences between epochs in time, use the functions
>  >  > counting gregorian days or seconds. If epochs are given as local time, they
>  >  > must be converted to universal time, in order to get the correct value of
>  >  > the elapsed time between epochs. Use of the function time_difference/2 is
>  >  > discouraged."
>  >  > But it's not quite clear to me...
>  >  > E.g. I have 2 values LocalTime1 and LocalTime2 which are somewhat like
>  >  > tuples erlang:localtime/0 and need to compute time difference e.g. in
>  >  > seconds. So should I then convert this values to UTC and then use
>  >  > calendar:datetime_to_gregorian_seconds/1 and then do the subtraction?
>  >  >  Or maybe there is some easier way?
>  >  >
>  >  > Best regards,
>  >  > Kirill.
>  >  _______________________________________________
>  >  erlang-questions mailing list
>  >
>  >  http://www.erlang.org/mailman/listinfo/erlang-questions
>  >
>

```