AnyLogic 中的日期和时间存储在Java的Date
类中。Date
类由年、月、日、小时、分钟、秒和毫秒组成。为了得到当前的日期和时间,可以通过AnyLogic的API或Java的Date
类来实现。
获取当前日期和时间的特定部分
-
Date date()——返回模型的当前时间
-
int getYear()
- 返回当前日期的年份 -
int getMonth()
- 返回当前日期的月份 -
int getDayOfMonth()
- 返回当前日期的天数 -
int getDayOfWeek()
- 返回当前日期是周几 -
int getHourOfDay()
- 返回当前日期的时间(24小时制)
创建日期对象
创建一个具体的Date
对象
- Date toDate(int year, int month, int day, int hourOfDay, int minute, int second) ——根据提供的参数返回默认时区的日期和时间
在模型时间和日期之间进行转
Date timeToDate(double t)
- 将给定的模型时间(通常以某种内部单位表示,如秒或毫秒)转化为模型日期(基于某个开始日期)double dateToTime(Date d)
- 将给定的模型日期转化为模型时间
计算时间间隔
dateToTime (datel)-dateToTime (date0)
例子
假设需要找到对应于未来离周一上午九点钟最近的模型时间。可以写如下函数:
double timeOnNearestDayofWeek(int dayofweek, int hour, int minute, int second)
{
double sametimetoday = dateToTime(toDate(getYear (),getMonth(),
getDayofMonth () hour, minute, second ));
int daydiff dayofweek.getDayofWeek();
if( daydiff 0 I daydiff = && time() > sametimetoday)
daydiff + 7;
return sametimetoday + daydiff*day ();
}
在仿真中,有时需要安排一些事情,比如发生在下个月或者两年后的某个时间。有
一种简单的方法可以得到对应的时间值:
double toTimeout(int timeUnit, double amount)