Oggi è il 29 febbraio: il giorno in cui i nostri test si sono interrotti.Rails TimeWithZone e anni bisestili
I nostri test non funzionano perché questi test fanno cose che, alla fine, possono essere paragonati a un comando come questo: Time.zone.now - 1.year + 1.year
. E capita di essere NON uguale a Time.zone.now
.
Perché succede? Perché ActiveSupport non è in grado di gestire gli anni bisestili in calcoli del genere? Non funziona con i timestamp, questo impedirebbe questo tipo di problema?
Se si esegue il test oggi, si dispone di sfortuna ... Oggi è il 29 febbraio, che esiste solo ogni 4 anni. Quindi "Time.zone.now' +" 1.year "ti porterà fino al 28 febbraio perché il 29 non esiste per l'anno 2017." 1.year.from_now' restituirà anche il 28 febbraio 2017 – MrYoshiji
Sì, lo capisco. Ma perché "Time.zone.now + 1.year" è uguale al 1 ° marzo, ad esempio? A mio parere sarebbe più appropriato. – Guilherme
Time.zone.now - 365.days + 365.days sembra funzionare però ... – tobmatth