Days between dates: Difference between revisions
Content added Content deleted
No edit summary |
(Added Quackery.) |
||
Line 2,089: | Line 2,089: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|Quackery}}== |
|||
The number of days between two dates is always positive – there is no such thing as -5 days. Strictly, it returns the number of midnights between two dates. As the task stands two consecutive dates are considered to have one day between them, which is a little weird but we know what it means. |
|||
<syntaxhighlight lang="Quackery"> [ 0 ] is january ( --> n ) |
|||
[ 31 ] is february ( --> n ) |
|||
[ 59 ] is march ( --> n ) |
|||
[ 90 ] is april ( --> n ) |
|||
[ 120 ] is may ( --> n ) |
|||
[ 151 ] is june ( --> n ) |
|||
[ 181 ] is july ( --> n ) |
|||
[ 212 ] is august ( --> n ) |
|||
[ 243 ] is september ( --> n ) |
|||
[ 273 ] is october ( --> n ) |
|||
[ 304 ] is november ( --> n ) |
|||
[ 334 ] is december ( --> n ) |
|||
[ 1 - dup 4 / |
|||
over 100 / - |
|||
swap 400 / + ] is leapcount ( y --> n ) |
|||
[ dup leapcount |
|||
swap 365 * + ] is yeardays ( y --> n ) |
|||
[ dup 400 mod 0 = iff |
|||
[ drop true ] done |
|||
dup 100 mod 0 = iff |
|||
[ drop false ] done |
|||
4 mod 0 = ] is leap ( y --> b ) |
|||
[ do dup yeardays |
|||
dip |
|||
[ over february > |
|||
iff [ leap + ] |
|||
else drop ] |
|||
+ + ] is daycount ( [dmy] --> n ) |
|||
[ daycount swap |
|||
daycount - abs ] is daysbetween ( [dmy] [dmy] --> n ) |
|||
say "Days between 1995-11-21 and 1995-11-21 is " |
|||
' [ 21 november 1995 ] ' [ 21 november 1995 ] daysbetween echo cr |
|||
say "Days between 2019-01-01 and 2019-01-02 is " |
|||
' [ 1 january 2019 ] ' [ 2 january 2019 ] daysbetween echo cr |
|||
say "Days between 2019-01-02 and 2019-01-01 is " |
|||
' [ 2 january 2019 ] ' [ 1 january 2019 ] daysbetween echo cr |
|||
say "Days between 2019-01-01 and 2019-03-01 is " |
|||
' [ 1 january 2019 ] ' [ 1 march 2019 ] daysbetween echo cr |
|||
say "Days between 2020-01-01 and 2020-03-01 is " |
|||
' [ 1 january 2020 ] ' [ 1 march 2020 ] daysbetween echo cr |
|||
say "Days between 1902-01-01 and 1968-12-25 is " |
|||
' [ 1 january 1902 ] ' [ 25 december 1968 ] daysbetween echo cr |
|||
say "Days between 2090-01-01 and 2098-12-25 is " |
|||
' [ 1 january 2090 ] ' [ 25 december 2098 ] daysbetween echo cr |
|||
say "Days between 1902-01-01 and 2098-12-25 is " |
|||
' [ 1 january 1902 ] ' [ 25 december 2098 ] daysbetween echo cr</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Days between 1995-11-21 and 1995-11-21 is 0 |
|||
Days between 2019-01-01 and 2019-01-02 is 1 |
|||
Days between 2019-01-02 and 2019-01-01 is 1 |
|||
Days between 2019-01-01 and 2019-03-01 is 59 |
|||
Days between 2020-01-01 and 2020-03-01 is 60 |
|||
Days between 1902-01-01 and 1968-12-25 is 24465 |
|||
Days between 2090-01-01 and 2098-12-25 is 3280 |
|||
Days between 1902-01-01 and 2098-12-25 is 71947 |
|||
</pre> |
|||
=={{header|Raku}}== |
=={{header|Raku}}== |