Yes sorry -1 is a valid year.

An invalid month is any integer outside of [1,12]. We can always define 
month 13 as January if we adopt Z_12, but I expected an error to occur. 
Accepting months outside of [1,12] violates the Principle of least 
astonishment.

For comparison, python verifies the month integer:

----> 1 datetime.date(2000, 13, 1)
ValueError: month must be in 1..12


So does golang accept these values because:
- a sensible definition exists for values outside of [1,12]?
- for performance reasons?

Taras

On Wednesday, 24 October 2018 01:23:35 UTC+11, Volker Dobler wrote:
>
> Why is year -1 invalid and what is an "invalid" month
> given that 13==1 in Z_12?
>
> V.
>
>
>
> On Tuesday, 23 October 2018 16:01:00 UTC+2, Taras D wrote:
>>
>> Hi,
>>
>> I was surprised to find the following worked without any reported errors:
>>
>> t1 := time.Date(-1, 1, 10, 23, 0, 0, 0, time.UTC) // invalid year
>> t2 := time.Date(2000, 13, 10, 23, 0, 0, 0, time.UTC) // invalid month
>> m := time.Month(13) // invalid month
>>
>> What is the rationale in accepting invalid month/year values?
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to