[Gambas-user] Different quantities of seconds from UNIX date...

vuott at tiscali.it vuott at tiscali.it
Sat Apr 7 23:13:21 CEST 2018


  > By using a external standard C function, its result is same that
.ToUnixTime() Method:

Obviously still no 72384C08 fix.

Il 07.04.2018
19:39 vuott at tiscali.it ha scritto: 

> By using a external standard C
function, its result is same that .ToUnixTime() Method:
> 
> Library
"libc:6"
> 
> Public Struct timespec
> tv_sec As Long
> tv_nsec As
Long
> End Struct
> 
> Private Const CLOCK_REALTIME As Integer = 0
> 
>
' int clock_gettime (clockid_t __clock_id, struct timespec *__tp)
> '
Get current value of clock CLOCK_ID and store it in TP.
> Private Extern
clock_gettime(__clock_id As Integer, __tp As Timespec) As Integer
> 
>
Public Sub Main()
> 
> Dim spec As New Timespec
> 
>
clock_gettime(CLOCK_REALTIME, spec)
> 
> Print spec.tv_sec, "(from
external function)"
> 
> Print CFloat(Date.ToUnixTime(Now)), "(with
.ToUnixTime() Method)"
> 
> Print CFloat(DateDiff("01/01/1970 04:00:00",
Now, gb.Second)), "(by adding 4 hours)"
> 
> Print
> Print
CFloat(DateDiff("01/01/1970", Now, gb.Second)), "(--> NO added hours)"
>

> End
> 
> regards
> vuott
> 
> Il 07.04.2018 18:47 Gianluigi ha
scritto: 
> 
>> 2018-04-07 18:15 GMT+02:00 Benoît Minisini :
>> 
>>> Le
07/04/2018 à 02:02, vuott at tiscali.it [1] a écrit :
>>> 
>>>> Hello,
>>>>

>>>> I do not understand why these two lines do not return the same
result.
>>>> 
>>>> Public Sub Main()
>>>> 
>>>> Print
CFloat(DateDiff(CDate("01/01/1970"), Now, gb.Second))
>>>> 
>>>> Print
CFloat(Date.ToUnixTime(Now)) ' Obviously we have to activate "gb.util"
Component
>>>> 
>>>> End
>>>> 
>>>> So that the two results are
identical, I have to add 4 hours !
>>>> 
>>>> Public Sub Main()
>>>>

>>>> Print CFloat(DateDiff(CDate("01/01/1970 04:00:00"), Now,
gb.Second)) ' Here I have to add 4 hours !
>>>> 
>>>> Print
CFloat(Date.ToUnixTime(Now))
>>>> 
>>>> End
>>>> 
>>>> regards
>>>>
vuott
>>> 
>>> It's a bug in Date.ToUnixTime() and Date.FromUnixTime()
function.
>>> 
>>> Can you try with commit
https://gitlab.com/gambas/gambas/commit/72384c0806071556d50e1e8870dd12f868985155
[2] ?
>>> 
>>> Regards,
>>> 
>>> -- 
>>> Benoît Minisini
>>> 
>>>
--------------------------------------------------
>>> 
>>> This is the
Gambas Mailing List:
>>> https://lists.gambas-basic.org/listinfo/user
[3]
>>> 
>>> Search the list:
>>>
https://lists.gambas-basic.org/cgi-bin/search.cgi [4]
>>> 
>>> Hosted by
https://www.hostsharing.net [5]
>> 
>> Sorry, I know I'm the most
ignorant of all, but I think the error is in DateDif and not in
ToUnixTime, as (perhaps) demonstrated as follows:
>> 
>> Public Sub
Main()
>> 
>> unix
>> diff
>> 
>> End
>> 
>> Private Sub unix()
>> 
>>
Dim i, u, r As Float
>> 
>> i = 60 * 60 * 24 ' ms of one day
>> u =
CFloat(Date.ToUnixTime(Now)) ' epoc ms
>> r = u / i
>> r = Frac(r) '
remainder
>> Print Time(r) ' UTC correct
>> 
>> End
>> 
>> Private Sub
diff()
>> 
>> Dim i, u, r As Float
>> 
>> i = 60 * 60 * 24 ' ms of one
day
>> u = CFloat(DateDiff("01/01/1970", Now, gb.Second)) ' epoc
ms???
>> r = u / i
>> r = Frac(r) ' remainder
>> Print Time(r) ' UTC
incorrect (+ 4 hrs)
>> 
>> End
>> 
>> Regards
>> Gianluigi
> 
> Con
Mobile Open 6 GB hai 6 Giga, 600 minuti e 300 SMS per il tuo smartphone
a 9EUR al mese per sempre. Passa ora a Tiscali Mobile, il nostro mese è
vero! http://tisca.li/Open6GB0318 [7]
  


Con Mobile Open 6 GB hai 6 Giga, 600 minuti e 300 SMS per il tuo smartphone a 9€ al mese per sempre. Passa ora a Tiscali Mobile, il nostro mese è vero! http://tisca.li/Open6GB0318

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20180407/7a45450e/attachment-0001.html>


More information about the User mailing list