[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