Re: gdatetime values out of range



5.05.2017 12:32 Andrea Zagli via gtk-list <gtk-list gnome org> wrote:


is it normal that if i pass values out of range to function
g_date_time_new_local it returns a valida date?

glib 2.50.3 debian sid

try this code: it returns 2017-03-02, instead i expected NULL
[cut]

The documentation of g_date_time_new_local says: [1]

"This call is equivalent to calling g_date_time_new()…" [2]

while g_date_time_new says:

"day [must be] between 1 and 28, 29, 30 or 31 depending on the
month and the year."

and then:

"It not considered a programmer error for the values to this function
to be out of range, but in the case that they are, the function will
return NULL."

So, again:

* day must be in a valid range for the given month, the documentation
does not say it must be <=31, neither it says it may be any number
and it will be recalculated into a valid day of another month,
* it is not an error if the value is out of range (and 30 of February
is out of range) so the program will not crash and will not display
a critical error message but it clearly says the function will
return NULL,
* also the documentation mentions the dates which are not representable
or ambiguous due to the DST changes but 30 of February is not
unrepresentable, it's just out of range.

Having read this it seems to me to be a bug. Either the code must
be fixed to reflect the documentation or the documentation must be
changed to reflect the code.

Of course my opinion is not authoritative so the proper authors
are welcome to answer.

Best regards,

Rafal


[1]
https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-new-local
[2] https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-new


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]