datetime - Fecha aritmética en Erlang
!= erlang (3)
Creé una esencia de GitHub con algunas utilidades útiles para este tipo de cosas. Siéntase libre de robar si lo desea.
Tengo una fecha en este formato {Y,M,D}
. ¿Hay alguna buena biblioteca de apoyo o trucos que pueda usar simplemente, por ejemplo restar tres meses a partir de esta fecha sin tener problemas con fechas inválidas, años bisiestos, etc.
Mi último uso similar se encuentra en MySql, donde puede escribir:
Select ''2011-05-31'' - Interval 3 Month;
que produce ''2011-02-28''
. No estoy interesado en cómo escribir esta biblioteca yo mismo, eso es lo que me gustaría evitar.
Use edate , específicamente la función de cambio.
> edate:shift({2011,5,31}, -3, months).
{2011,2,28}
Debajo del capó, utiliza el módulo de calendario, por lo que se ocupa correctamente de todos los casos de esquina.
1> calendar:gregorian_days_to_date(calendar:date_to_gregorian_days({2011, 7, 14}) - 90).
{2011,4,15}