Days between dates: Difference between revisions
→{{header|Fōrmulæ}}
(Added PL/M) |
|||
Line 1,268:
{{FormulaeEntry|page=https://formulae.org/?timeZone=America%2FLos_Angeles&script=examples/Days_between_dates}}
'''Solution'''
Note. For this script, the time zone is intentionally set to America/Los_Angeles, because it observes [https://en.wikipedia.org/wiki/Daylight_saving_time daylight saving time], It is necesary to solve this exercise.
Provided that the ToNumber expression applied to a time expression reduces to the number of milliseconds of such that time from the [https://en.wikipedia.org/wiki/Epoch_(computing) epoch]:
[[File:Fōrmulæ - Days between dates 01.png]]
[[File:Fōrmulæ - Days between dates 02.png]]
The solution seems easy, calculating the difference between two times (in milliseconds), and dividing by 86,4000,000 (number of milliseconds in a day):
[[File:Fōrmulæ - Days between dates 03.png]]
[[File:Fōrmulæ - Days between dates 04.png]]
However, it does not work if one time is in daylight saving time, and the other one is in standard time:
[[File:Fōrmulæ - Days between dates 05.png]]
[[File:Fōrmulæ - Days between dates 06.png]]
[[File:Fōrmulæ - Days between dates 07.png]]
[[File:Fōrmulæ - Days between dates 08.png]]
'''Solution 1'''
The first solution consists in simply rounding the result to the nearest integer:
[[File:Fōrmulæ - Days between dates 09.png]]
[[File:Fōrmulæ - Days between dates 10.png]]
'''Solution 2'''
The expression GetTimeZoneOffset reduces to the offset (in minutes) of the given time.
[[File:Fōrmulæ - Days between dates 11.png]]
[[File:Fōrmulæ - Days between dates 12.png]]
[[File:Fōrmulæ - Days between dates 13.png]]
[[File:Fōrmulæ - Days between dates 14.png]]
The solution consist in taking this difference in account.
So, the function that works correctly is:
[[File:Fōrmulæ - Days between dates 15.png]]
'''Test cases'''
[[File:Fōrmulæ - Days between dates 16.png]]
[[File:Fōrmulæ - Days between dates 17.png]]
Notice that it works even for fractions of days:
[[File:Fōrmulæ - Days between dates 18.png]]
[[File:Fōrmulæ - Days between dates 19.png]]
=={{header|Go}}==
|