Function: icalendar--decoded-date-time-p

icalendar--decoded-date-time-p is a byte-compiled function defined in icalendar-parser.el.gz.

Signature

(icalendar--decoded-date-time-p VAL)

Source Code

;; Defined in /usr/src/emacs/lisp/calendar/icalendar-parser.el.gz
;;;; 3.3.5 Date-Time
(defun ical:-decoded-date-time-p (val)
  (and (listp val)
       (length= val 9)
       (cl-typep (decoded-time-second val) 'ical:numeric-second)
       (cl-typep (decoded-time-minute val) 'ical:numeric-minute)
       (cl-typep (decoded-time-hour val) 'ical:numeric-hour)
       (cl-typep (decoded-time-day val) 'ical:numeric-monthday)
       (cl-typep (decoded-time-month val) 'ical:numeric-month)
       (cl-typep (decoded-time-year val) 'ical:numeric-year)
       (calendar-date-is-valid-p (list (decoded-time-month val)
                                       (decoded-time-day val)
                                       (decoded-time-year val)))
       ;; FIXME: the weekday slot value should be automatically
       ;; calculated from month, day, and year, like:
       ;;   (calendar-day-of-week (list month day year))
       ;; Although `ical:read-date-time' does this correctly,
       ;; `make-decoded-time' does not.  Thus we can't use
       ;; `make-decoded-time' to construct valid `ical:date-time'
       ;; values unless this check is turned off,
       ;; which means it's annoying to write tests and anything
       ;; that uses cl-typecase to dispatch on values created by
       ;; `make-decoded-time':
       ;; (cl-typep (decoded-time-weekday val) '(integer 0 6))
       (cl-typep (decoded-time-dst val) '(member t nil -1))
       (cl-typep (decoded-time-zone val) '(or integer boolean))))