我有一个调度程序将触发任务 T , T 的一些参数非常依赖于日期。例如,如果 T 在星期二运行,则某些参数将为:
param1 = datetime('Monday at 1pm')
param2 = datetime('Tuesday at 1am')
参数可以根据运行 T 的时间而变化。因此,例如,如果它在星期日运行,则参数可以是:
param1 = datetime('Saturday at 12pm')
param2 = datetime('Sunday at 12pm')
等等。想法是日期是相对于 T 运行的时间,但是我不能使用timedelta
,因为我不确切知道什么时候运行任务,所以我想要保留对日期的绝对控制程度。
现在,将启动 T 的代码有一个指定参数的小json包。我正在编写一个小脚本语言,允许我指定相对日期。它看起来像是:
date1: {
'type': 'datetime',
'source': 'composite',
'value': '(Yn)-(Mn)-(Dn)-(Hn)-(Nn)'
}
将解析value
字符串,并根据括号中的内容编译参数。因此,例如,如果value
类似于(Y:n)-(M:n)-(D:-1)-(H:18)-(N:00)
,则会使用当前年份,当前月份,上一个日期,18:00构建日期。
我是否试图用这些东西重新发明轮子。是否有图书馆可以让我的生活更轻松?
编辑:看起来像Date-Utils的Relative Delta完全符合我上面的描述!