validar semana poner obtener manejo incrementar hacer fechas fecha entre diferencia como calendario aritmética actual python date

poner - obtener el dia de la semana en python



Días entre dos fechas en Python (4)

¿Quiere decir días calendario completos o grupos de 24 horas?

Por solo 24 horas, suponiendo que está usando la fecha y hora de Python, el objeto timedelta ya tiene una propiedad de días:

days = (a - b).days

Para días calendario, deberá redondear hacia abajo al día más cercano, yb hasta el día más cercano, eliminando el día parcial de cada lado:

roundedA = a.replace(hour = 0, minute = 0, second = 0, microsecond = 0) roundedB = b.replace(hour = 0, minute = 0, second = 0, microsecond = 0) days = (roundedA - roundedB).days

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es la forma más corta de ver cuántos días completos han pasado entre dos fechas? Esto es lo que estoy haciendo ahora.

math.floor((b - a).total_seconds()/float(86400))


Haciendo referencia a mis comentarios sobre otras respuestas. Así es como calcularía la diferencia en días en base a 24 horas y días de calendario. el atributo de días funciona bien durante 24 horas y la función funciona mejor para las verificaciones del calendario.

from datetime import timedelta, datetime def cal_days_diff(a,b): A = a.replace(hour = 0, minute = 0, second = 0, microsecond = 0) B = b.replace(hour = 0, minute = 0, second = 0, microsecond = 0) return (A - B).days if __name__ == ''__main__'': x = datetime(2013, 06, 18, 16, 00) y = datetime(2013, 06, 19, 2, 00) print (y - x).days # 0 print cal_days_diff(y, x) # 1 z = datetime(2013, 06, 20, 2, 00) print (z - x).days # 1 print cal_days_diff(z, x) # 2


Suponiendo que literalmente tiene dos objetos de fecha, puede restar uno de otro y consultar el objeto timedelta resultante por el número de días:

>>> from datetime import date >>> a = date(2011,11,24) >>> b = date(2011,11,17) >>> a-b datetime.timedelta(7) >>> (a-b).days 7

Y funciona también con datetimes, creo que se redondea al día más cercano:

>>> from datetime import datetime >>> a = datetime(2011,11,24,0,0,0) >>> b = datetime(2011,11,17,23,59,59) >>> a-b datetime.timedelta(6, 1) >>> (a-b).days 6


Tratar:

(b-a).days

Intenté con b y una de tipo datetime.date .