help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: even elder races get tired of waiting


From: Jean Louis
Subject: Re: even elder races get tired of waiting
Date: Sun, 21 Mar 2021 17:01:33 +0300
User-agent: Mutt/2.0.6 (2021-03-06)

* Emanuel Berg via Users list for the GNU Emacs text editor 
<help-gnu-emacs@gnu.org> [2021-03-20 23:39]:
> ;;; this file:
> ;;;   http://user.it.uu.se/~embe8573/emacs-init/time-cmp.el
> ;;;   https://dataswamp.org/~incal/emacs-init/time-cmp.el
> 
> ;; ...
> 
> (require 'cl-lib)
> (defun days-from-date (d1 d2)
>   (let*((sep     "-")
>         (d1-data (cl-map 'list #'string-to-number (split-string d1 sep)))
>         (d2-data (cl-map 'list #'string-to-number (split-string d2 sep)))
>         (y1      (car   d1-data))
>         (m1      (cadr  d1-data))
>         (d1      (caddr d1-data))
>         (y2      (car   d2-data))
>         (m2      (cadr  d2-data))
>         (d2      (caddr d2-data)) )
>     (days-from y1 m1 d1 y2 m2 d2) ))
> ;; (days-from-date "2021-03-19" "2021-04-20") ; 31
> 
> (defun days-from (y1 m1 d1 y2 m2 d2)
>   (let*((s-then (float-time (encode-time 0 0 0 d1 m1 y1)))
>         (s-now  (float-time (encode-time 0 0 0 d2 m2 y2)))
>         (s-diff (- s-now s-then)) )
>     (string-to-number (format-seconds "%d" s-diff) )))
> ;; (days-from 2021 03 19 2021 04 20) ; 31

Great.

I use PostgreSQL for that, and there is difference one day:

(defun days-from (from-date to-date)
  "Returns days passed from FROM-DATE to TO-DATE in format YYYY-MM-DD."
  (string-to-number
   (string-trim
    (shell-command-to-string
     (format "psql -Aqtc \"SELECT abs('%s'::date - '%s'::date)\"" to-date 
from-date)))))

(days-from "2021-03-19" "2021-04-20") => 32

Also here they claim to be 32:
https://www.timeanddate.com/date/durationresult.html?d1=19&m1=03&y1=2021&d2=20&m2=04&y2=2021

And if I click on that website [X] Include end date in calculation, I
get 33. Maybe website is wrong.

Human review:

     March 2021             April 2021     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3
 7  8  9 10 11 12 13    4  5  6  7  8  9 10
14 15 16 17 18 19 20   11 12 13 14 15 16 17
21 22 23 24 25 26 27   18 19 20 21 22 23 24
28 29 30 31            25 26 27 28 29 30   

20 21 22 23 24 25 26 27 28 29 30 31 plus 20 = 32

So it is maybe matter of counting. I don't count the first day, as
that is like zero. But I do count last day. Website says 33 if last
day is counted.

So in the end your difference of 31 is maybe right.

Jean



reply via email to

[Prev in Thread] Current Thread [Next in Thread]