Resumen
La clase EsriTimeDelta representa una duración, la diferencia entre dos fechas u horas.
Debate
La clase EsriTimeDelta es una alternativa a datetime.timedelta de núcleo de Python que utiliza unidades de tiempo internas de Esri para intervalos que no pueden ser controlados por el objeto timedelta del núcleo de Python (tales como meses, semanas, etc.).
La propiedad timeStepInterval de las clases LayerTime y DataFrameTime devuelve objetos EsriTimeDelta.
Sintaxis
EsriTimeDelta (interval, units)
Parámetro | Explicación | Tipo de datos |
interval | The interval of the EsriTimeDelta. | Double |
units | The units of the EsriTimeDelta. Valid units are milliseconds, seconds, minutes, hours, days, weeks, months, years, decades, and centuries. | String |
Propiedades
Propiedad | Explicación | Tipo de datos |
interval (Sólo lectura) | The interval of the EsriTimeDelta. | Double |
units (Sólo lectura) | The units of the EsriTimeDelta. | String |
Muestra de código
EsriTimeDelta example 1
The following script accesses the time-step interval property of a time-enabled layer in a map document. The time-step interval is an EsriTimeDelta object. The script then prints EsriTimeDelta properties.
import arcpy
mxd = arcpy.mapping.MapDocument('C:/Project/Temperature.mxd')
df = arcpy.mapping.ListDataFrames(mxd, 'USA')[0]
lyr = arcpy.mapping.ListLayers(mxd,'temperature', df)[0]
tsi = lyr.time.timeStepInterval
print "Time Step Interval:", tsi
print "EsriTimeDelta interval:", tsi.interval
print "EsriTimeDelta units:", tsi.units
EsriTimeDelta example 2
The following script uses the EsriTimeDelta object to iterate through twelve months starting from the current date.
import arcpy, datetime
time = datetime.datetime.now()
for delta in range(1, 13):
next_date = time + arcpy.time.EsriTimeDelta(1 * delta, "months")
print next_date
EsriTimeDelta example 3
The following script shows how the EsriTimeDelta handles leap years. The script adds a month to January 31, 2008 and returns February 29, 2008.
import arcpy, datetime
time = datetime.datetime(2008, 1, 31)
for delta in range(0, 12):
next_date = time + arcpy.time.EsriTimeDelta(delta, "months")
print next_date
delta = delta + 1