forked from mirrors/org-mode
date/time prompt: Provide support for HHhMM time input
* lisp/org.el (org-read-date-analyze): Add support for HHhMM time input, in similar way as for am/pm times. * doc/org-manual.org (The date/time prompt): Add example to illustrate the feature. TINYCHANGE
This commit is contained in:
parent
a2403321ac
commit
e8562a3327
|
@ -6060,6 +6060,7 @@ dash(es) as the separator in the former case and use =+= as the
|
|||
separator in the latter case, e.g.:
|
||||
|
||||
| =11am-1:15pm= | \rArr{} 11:00-13:15 |
|
||||
| =11h-13h15= | \rArr{} same as above |
|
||||
| =11am--1:15pm= | \rArr{} same as above |
|
||||
| =11am+2:15= | \rArr{} same as above |
|
||||
|
||||
|
|
13
lisp/org.el
13
lisp/org.el
|
@ -14104,6 +14104,19 @@ user."
|
|||
(setq ans (replace-match (format "%02d:%02d" hour minute)
|
||||
t t ans))))
|
||||
|
||||
;; Help matching HHhMM times, similarly as for am/pm times.
|
||||
(cl-loop for i from 1 to 2 do ; twice, for end time as well
|
||||
(when (and (not (string-match "\\(\\`\\|[^+]\\)[012]?[0-9]:[0-9][0-9]\\([ \t\n]\\|$\\)" ans))
|
||||
(string-match "\\(?:\\(?1:[012]?[0-9]\\)?h\\(?2:[0-5][0-9]\\)\\)\\|\\(?:\\(?1:[012]?[0-9]\\)h\\(?2:[0-5][0-9]\\)?\\)\\>" ans))
|
||||
(setq hour (if (match-end 1)
|
||||
(string-to-number (match-string 1 ans))
|
||||
0)
|
||||
minute (if (match-end 2)
|
||||
(string-to-number (match-string 2 ans))
|
||||
0))
|
||||
(setq ans (replace-match (format "%02d:%02d" hour minute)
|
||||
t t ans))))
|
||||
|
||||
;; Check if a time range is given as a duration
|
||||
(when (string-match "\\([012]?[0-9]\\):\\([0-6][0-9]\\)\\+\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)?" ans)
|
||||
(setq hour (string-to-number (match-string 1 ans))
|
||||
|
|
Loading…
Reference in a new issue