Jump to content

Days between dates: Difference between revisions

Added Quackery.
No edit summary
(Added Quackery.)
 
Line 2,089:
 
</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}}==
1,462

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.