Краткая информация
Класс EsriTimeDelta представляет длительность, разницу между двумя датами или значениями времени.
Обсуждение
Класс EsriTimeDelta является альтернативой для базового класса datetime.timedelta Python и использует для интервалов внутренние единицы измерения времени Esri (месяцы, недели и т. д.), которые не может обрабатывать базовый объект timedelta Python.
Свойство timeStepInterval классов LayerTime и DataFrameTime возвращает объекты EsriTimeDelta.
Синтаксис
EsriTimeDelta (interval, units)
Параметр | Объяснение | Тип данных |
interval | Интервал EsriTimeDelta. | Double |
units | Единицы измерения EsriTimeDelta. Допустимые единицы измерения: миллисекунды, секунды, минуты, часы, дни, недели, месяцы, годы, десятилетия и века. | String |
Свойства
Свойство | Объяснение | Тип данных |
interval (только чтение) | Интервал EsriTimeDelta. | Double |
units (только чтение) | Единицы измерения EsriTimeDelta. | String |
Пример кода
Пример EsriTimeDelta 1
Следующий скрипт получает доступ к свойству временного интервала слоя с поддержкой времени в документе карты. Временной шаг – это объект EsriTimeDelta. Затем скрипт печатает свойства EsriTimeDelta.
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 2
Следующий скрипт использует объект EsriTimeDelta для прохода по двенадцати месяцев начиная с текущей даты.
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 3
В следующем скрипте показано, как EsriTimeDelta обрабатывает високосные года. Скрипт добавляет месяц к 31 января 2008 г. и возвращает 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