Add DELTA days for report command

This commit is contained in:
Nikolay Puzanov 2018-09-18 12:45:50 +03:00
parent 4d29ac2036
commit 74fd7c820d
2 changed files with 17 additions and 4 deletions

View File

@ -7,7 +7,7 @@
stop Stop task
current Show current running task
report Show report
report day [DATE] Show report for today or DATE
report day [DATE/DELTA] Show report for today or DATE or DELTA days ago (e.g. -1)
report week [DATE] Show report for current week or week of DATE
report month [DATE] Show report for current month or month of DATE
report TASK Show report for project
@ -71,7 +71,7 @@
Команда `report` может иметь параметры:
- `day [DATE]` - отчет по текущему дню или по дате DATE;
- `day [DATE/DELTA]` - отчет по текущему дню, по дате DATE или по дню + DELTA (например, вчера - это -1);
- `week [DATE]` - отчет по текущей неделе или по неделе, в которую входит день
DATE;
- `month [DATE]` - отчет по текущему месяцу или по месяцу, в который входит день

View File

@ -213,6 +213,12 @@
(if (zero? n) (car l)
(nth-maybe (- n 1) (cdr l)))))
;;; Add time duration to date
(define (date-add-duration date duration)
(time-monotonic->date
(add-duration
(date->time-monotonic date) duration)))
;;; ========================= PROJECT SPECIFIC HELPERS =========================
;;; Find task or deadline by path
@ -574,7 +580,14 @@
(values sheet '())
(let ((date (catch #t
(lambda () (string->date range date-format))
(lambda (key . args) (current-date)))))
(lambda (key . args)
(let ((n (if (null? range) #f (string->number range))))
(if (and n (string-ci= qualis "day"))
(date-add-duration
(current-date)
(make-time time-duration 0
(* n 24 60 60)))
(current-date)))))))
(let-values (((description filter-lambda)
(cond
;; Filter records by day
@ -895,7 +908,7 @@
(format #t " stop Stop task\n")
(format #t " current Show current running task\n")
(format #t " report Show report\n")
(format #t " report day [DATE] Show report for today or DATE\n")
(format #t " report day [DATE/DELTA] Show report for today or DATE or DELTA days ago (e.g. -1)\n")
(format #t " report week [DATE] Show report for current week or week of DATE\n")
(format #t " report month [DATE] Show report for current month or month of DATE\n")
(format #t " report TASK Show report for project\n")