2013-02-25 2 views
1

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을 사용할 수 없으므로 날짜에 대한 절대적인 제어권을 유지하려고합니다. .

이제 을 시작할 코드에는 매개 변수를 지정하는 작은 json 패키지가 있습니다. 필자는 상대 날짜를 지정할 수있는 작은 스크립팅 언어를 작성하는 중입니다.

value 문자열을 구문 분석하고 괄호 안에 무엇을 기반으로 할 것
date1: { 
    'type': 'datetime', 
    'source': 'composite', 
    'value': '(Yn)-(Mn)-(Dn)-(Hn)-(Nn)' 
} 

, 매개 변수가 컴파일 될 것이다 : 그것은의 라인을 따라 뭔가를 보일 것이다. 따라서 예를 들어 value(Y:n)-(M:n)-(D:-1)-(H:18)-(N:00) 인 경우 현재 연도의 현재 월이 일 이전에 일, 18:00으로 날짜가 생성됩니다.

나는이 물건의 일부로 바퀴를 다시 발명하려고 노력하고있다. 내 삶을 편하게 해주는 도서관이 있습니까?


편집 : 정확히 내가 위에서 설명 된 무엇을 날짜-의 Utils에서 Relative Delta 것 같은데!

+0

* 'timedelta'를 사용할 수 없습니다 ... * - 스케줄러가 작업 실행시기를 알고 있지 않습니까? –

+0

@ire_and_curses : 일종의 일을합니다 : 여러 가지 유형의 작업이 있기 때문에 반복되는 많은 작업 대신 뛰어난 작업을 실행하는 일반 작업이 있습니다. 그러나 그것은 문제가 아닙니다. 매개 변수의 시간을 정확하게 지정할 수 있어야합니다. 작업은 약간의 지터로 실행될 수 있습니다. – Goro

답변

3

사람이 읽을 수있는 날짜/시간 구문 분석의 경우, parsedatetime

내가 그대로은 "사람이 읽을 수있는"문자열을 저장하는 것 사용하고, 필요한 경우이를 평가할 수 있습니다.

+0

이것은 강력한 라이브러리처럼 보이지만 문서화가 잘되어 있지 않습니다. – Goro

관련 문제