Временные функции

Получение текущего модельного времени

Вы можете получить текущее модельное (логическое) время с помощью функции time(). Простая функция time() возвращает текущее модельное время как количество единиц модельного времени, прошедшее с начала запуска модели. Другая функция, time(TIME_UNIT) возвращает количество промоделированных единиц времени, заданных аргументом функции. Например, функция time(MINUTE) возвращает количество промоделированных минут (число с двойной точностью).

Получение текущей даты, дня недели, часа...

Даты в AnyLogic задаются Java классом Date. Дата состоит из значений года, месяца, дня месяца, часа дня, минуты, секунды и миллисекунды. Чтобы получить значение текущей даты, вызовите функцию date().

Существует некоторое количество различных функций, которые возвращают отдельные компоненты текущей даты (также все эти функции могут использоваться в виде <имя функции>( ), и тогда они возвращают компонент заданной, а не текущей даты):

Функции, позволяющие независимо задавать промежутки времени

Допустим, основными единицами времени в вашей модели являются часы. Как тогда задать какое-либо событие, которое должно произойти через два дня? Или как задать промежуток времени, равный пяти минутам? Конечно, вы можете задать эти промежутки времени как 48 и 5.0 / 60. Но будет проще использовать специальные функции, которые возвращают заданный промежуток времени в соответствии с текущими настройками единиц времени в модели:

Например, если заданными единицами времени являются часы, то вызов minute() вернет 0.0166, а вызов week() вернет 168.0. Таким образом, вместо того, чтобы запоминать, какие единицы времени сейчас заданы, и использовать значения вроде 48 или 5.0 / 60, вы просто можете написать 2 * day() и 5 * minute(). Вы также можете комбинировать различные единицы времени в одном выражении: 3 * hour() + 20 * minute().

Наиболее важно то, что выражения с этими функциями являются независимыми от настроек единиц времени: в этих выражениях всегда будут вычисляться корректные промежутки времени. Поэтому мы рекомендуем использовать minute(), hour(), day() и т. д. в числовых выражениях, которые задают промежутки времени, ведь таким образом вы можете спокойно менять единицы времени без необходимости менять всю модель.

Функции преобразования