diff options
Diffstat (limited to 'modules/custom-datetime.el')
| -rw-r--r-- | modules/custom-datetime.el | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/modules/custom-datetime.el b/modules/custom-datetime.el new file mode 100644 index 00000000..95d672c8 --- /dev/null +++ b/modules/custom-datetime.el @@ -0,0 +1,93 @@ +;;; custom-datetime.el --- -*- coding: utf-8; lexical-binding: t; -*- + +;;; Commentary: +;; + +;;; Code: + + +(defvar readable-date-time-format "%A, %B %d, %Y at %I:%M:%S %p %Z " + "Format string used by `cj/insert-readable-date-time'. + +See `format-time-string' for possible replacements.") + +(defun cj/insert-readable-date-time () + "Insert the current date and time into the current buffer. + +Use `readable-date-time-format' for formatting." + (interactive) + (insert (format-time-string readable-date-time-format (current-time)))) + +(defvar sortable-date-time-format "%Y-%m-%d %a @ %H:%M:%S %z " + "Format string used by `cj/insert-sortable-date-time'. + +See `format-time-string' for possible replacements.") + +(defun cj/insert-sortable-date-time () + "Insert the current date and time into the current buffer. + +Use `sortable-date-time-format' for formatting." + (interactive) + (insert (format-time-string sortable-date-time-format (current-time)))) + +(defvar sortable-time-format "%I:%M:%S %p %Z " + "Format string used by `cj/insert-sortable-time'. + +See `format-time-string' for possible replacements.") + +(defun cj/insert-sortable-time () + "Insert the current time into the current buffer. + +Use `sortable-time-format' for formatting." + (interactive) + (insert (format-time-string sortable-time-format (current-time)))) + +(defvar readable-time-format "%-I:%M %p " + "Format string used by `cj/insert-readable-time'. + +See `format-time-string' for possible replacements.") + +(defun cj/insert-readable-time () + "Insert the current time into the current buffer. + +Use `readable-time-format' for formatting." + (interactive) + (insert (format-time-string readable-time-format (current-time)))) + +(defvar sortable-date-format "%Y-%m-%d %a" + "Format string used by `cj/insert-sortable-date'. + +See `format-time-string' for possible replacements.") + +(defun cj/insert-sortable-date () + "Insert the current date into the current buffer. + +Use `sortable-date-format' for formatting." + (interactive) + (insert (format-time-string sortable-date-format (current-time)))) + +(defvar readable-date-format "%A, %B %d, %Y" + "Format string used by `cj/insert-readable-date'. + +See `format-time-string' for possible replacements.") + +(defun cj/insert-readable-date () + "Insert the current date into the current buffer. + +Use `readable-date-format' for formatting." + (interactive) + (insert (format-time-string readable-date-format (current-time)))) + +;; Date/time insertion prefix and keymap +(define-prefix-command 'cj/datetime-map nil + "Keymap for inserting various date/time formats.") +(define-key cj/custom-keymap "d" 'cj/datetime-map) +(define-key cj/datetime-map "r" 'cj/insert-readable-date-time) +(define-key cj/datetime-map "s" 'cj/insert-sortable-date-time) +(define-key cj/datetime-map "t" 'cj/insert-sortable-time) +(define-key cj/datetime-map "T" 'cj/insert-readable-time) +(define-key cj/datetime-map "d" 'cj/insert-sortable-date) +(define-key cj/datetime-map "D" 'cj/insert-readable-date) + +(provide 'custom-datetime) +;;; custom-datetime.el ends here. |
