클럭 시간이 겹치는 두 개의 Org 파일/하위 트리에서 관련 작업이 있습니다. 이것은 수동 작업 로그와 생성 된 git commit 로그입니다 (아래 참조).겹치는 날짜/시간 간격을 어떻게 분할합니까? (조직 모드 시간)?
하나의 하위 트리의 CLOCK : 겹치는 시간을 제거하려면 항목을 조정해야합니다. 다른 하위 트리는 완료된 것으로 간주되며 CLOCK입니다. 항목을 조정하면 안됩니다.
편집 :이 질문은 겹치는 부분을 제거하기위한 새로운 시간 간격 계산에 관한 것입니다. 모든 제안은 조직 모드 파일 형식을 구문 분석 할 필요가 없습니다. Org 모드 함수를 사용하거나 사용하지 않고 Emacs Lisp와 마찬가지로 Python datetime.datetime 알고리즘이 유용합니다. 가 발생 곳
확인 시간이 겹치는 : (더 익숙한) 파이썬 또는 이맥스 리스프에서
내가 싶습니다 (조직의 기능을 도울 수). file1.org는 변경 될 수 있습니다. file2.org 시간 간격은 이 고정/수정으로 간주되어야합니다.
계산 새로운 시간 간격에 대한 상기 클록 : file1.org 의 라인 file2.org 시계 임의의 오버랩을 제거 : 라인.
새로운 CLOCK을 작성한 행 : 또는 적어도 datetimes입니다.
파이썬 편의 기능 tsparse 파이썬 datetime.datetime 개체에 조직 모드 소인 변환 :
>>> from datetime import datetime, timedelta
>>> def tsparse(timestring): return datetime.strptime(timestring,'%Y-%m-%d %a %H:%M')
>>> tsparse('2008-10-15 Wed 00:45')
datetime.datetime(2008, 10, 15, 0, 45)
테스트 케이스가 아래에서 확인할 수있다. 파이썬이나 이맥스 Lisp에 대한 알고리즘이나 구현 제안에 감사드립니다.
제프
file1.org, 이전 조정 :
* Manually Edited Worklog
** DONE Onsite
CLOSED: [2009-09-09 Wed 15:00]
:LOGBOOK:
CLOCK: [2009-09-09 Wed 07:00]--[2009-09-09 Wed 15:00] => 8:00
:END:
** DONE Onsite
CLOSED: [2009-09-10 Wed 15:00]
:LOGBOOK:
CLOCK: [2009-09-10 Thu 08:00]--[2009-09-10 Thu 15:00] => 7:00
:END:
file2.org :
* Generated commit log
** DONE Commit 1 :partial:overlap:leading:contained:
CLOSED: [2009-09-09 Tue 10:18]
:LOGBOOK:
CLOCK: [2009-09-09 Wed 06:40]--[2009-09-09 Wed 07:18] => 0:38
CLOCK: [2009-09-09 Wed 10:12]--[2009-09-09 Wed 10:18] => 0:06
:END:
** DONE Commit 2 :contained:overlap:contiguous:
CLOSED: [2009-09-09 Wed 10:20]
:LOGBOOK:
CLOCK: [2009-09-09 Wed 10:18]--[2009-09-09 Wed 10:20] => 0:02
:END:
** DONE Commit 4 :contained:overlap:
CLOSED: [2009-09-10 Wed 09:53]
:LOGBOOK:
CLOCK: [2009-09-10 Wed 09:49]--[2009-09-10 Wed 09:53] => 0:04
:END:
** DONE Commit 5 :partial:overlap:trailing:
CLOSED: [2009-09-10 Wed 15:12]
:LOGBOOK:
CLOCK: [2009-09-10 Wed 14:45]--[2009-09-10 Wed 15:12] => 0:27
:END:
** DONE Commit 6 :partial:overlap:leading:
CLOSED: [2009-09-11 Fri 08:05]
:LOGBOOK:
CLOCK: [2009-09-11 Fri 07:50]--[2009-09-11 Fri 08:05] => 0:15
:END:
** DONE Commit 7 :nonoverlap:
CLOSED: [2009-09-11 Fri 15:55]
:LOGBOOK:
CLOCK: [2009-09-11 Fri 15:25]--[2009-09-11 Fri 15:55] => 0:30
:END:
file1.org, 조정 후 :
* Manually Edited Worklog
** DONE Onsite
CLOSED: [2009-09-09 Wed 15:00]
:LOGBOOK:
CLOCK: [2009-09-09 Wed 10:20]--[2009-09-09 Wed 14:45] => 4:25
CLOCK: [2009-09-09 Wed 07:18]--[2009-09-09 Wed 10:12] => 2:54
:END:
** DONE Onsite
CLOSED: [2009-09-10 Wed 15:00]
:LOGBOOK:
CLOCK: [2009-09-10 Thu 08:05]--[2009-09-10 Thu 15:00] => 6:55
:END: