[pyar] Weekday de fechas muy viejas

Matíás Lang shareman1204 en gmail.com
Jue Mayo 5 01:31:01 ART 2016


On Wed, May 04, 2016 at 09:39:52AM -0300, Ariel Rossanigo wrote:
> Hola Matias; supongo que el problema viene porque los módulos de Python
> trabajan con el calendario Gregoriano extendido [0] y en realidad ese
> calendario antes de 1582 no existía; existía el juliano que tiene algunas
> diferencias de días.
> 
> Hay una fórmula para corregir eso, acá la podés ver [1]. Quedaría más o
> menos así:
> 
> In [1]: import datetime
> 
> In [2]: year = 156
> 
> In [3]: d = datetime.datetime(year,1,26)
> 
> 
> In [4]: (d.weekday() + (year//100) - (year//400) - 2)%7
> Out[4]: 6
> 
> 
> Saludos
> 
> [0]: https://docs.python.org/2/library/calendar.html#module-calendar
> Most of these functions and classes rely on the datetime
> <https://docs.python.org/2/library/datetime.html#module-datetime> module
> which uses an idealized calendar, the current Gregorian calendar
> indefinitely extended in both directions. This matches the definition of
> the “proleptic Gregorian” calendar in Dershowitz and Reingold’s book
> “Calendrical Calculations”, where it’s the base calendar for all
> computations.
> [1]:
> https://en.wikipedia.org/wiki/Gregorian_calendar#Difference_between_Gregorian_and_Julian_calendar_dates
Muchas gracias Ariel por aclararlo! Parece que es eso efectivamente.

On Wed, May 04, 2016 at 10:13:40AM -0300, Daniel wrote:
> ¡Que interesante!
> ahora... no me parece un comportamiento esperado de la función. Debería dar
> error antes de ese año, o corregirlo
> después salen errores como el que acabo de encontrar en este mismo hilo
> calculando los tiempos :P
Leyendo lo que publicó Ariel parece que justifican ese tipo de
comportamiento con la definición del libro "Calendrical Calculations".
Igualmente es medio raro que funcione distinto a la mayoría de
aplicaciones según lo que probé, es un poco como decir "están todos mal
menos yo" je.


On Wed, May 04, 2016 at 11:35:02AM -0300, Gonzalo Martinez wrote:
> Buenas, sabés que yo leí tu mail y a lo bruto empecé a ver cuando es que
> hacia el quiebre entre funcionar bien y funcionar mal.
> 
> y evidentemente el quiebre se da en 1752 que es según Wikipedia [0] cuando
> se empieza a usar el calendario gregoriano en Inglaterra.
> 
> Esa prueba abona lo que dijo Ariel con respecto al tema del calendario
> gregoriano vs juliano
> 
> https://en.wikipedia.org/wiki/Gregorian_calendar#Difference_between_Gregorian_and_Julian_calendar_dates
> 
Genial! Gracias por la corroboración

PD: Al final no estoy muy seguro que el resultado del challenge se
solucione por este camino de ver el año (se aceptan tips de gente que lo
haya pasado :D) pero por lo menos aprendí algo bastante interesante
sobre el manejo de fechas y calendarios. 

Saludos!



Más información sobre la lista de distribución pyar