-
Notifications
You must be signed in to change notification settings - Fork 171
Closed
Labels
meeting-agendanormativeWould be a normative change to the proposalWould be a normative change to the proposalspec-textSpecification text involvedSpecification text involved
Description
The current DifferenceISODate definition returns the following results. Notice that it's always "P1M".
js> var end = new Temporal.PlainDate(1970, 2, 28)
js> var start = new Temporal.PlainDate(1970, 1, 28)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P1M"
js> var start = new Temporal.PlainDate(1970, 1, 29)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P1M"
js> var start = new Temporal.PlainDate(1970, 1, 30)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P1M"
js> var start = new Temporal.PlainDate(1970, 1, 31)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P1M"When the end date is 1970-02-27, the results are more like what I'd expect:
js> var end = new Temporal.PlainDate(1970, 2, 27)
js> var start = new Temporal.PlainDate(1970, 1, 27)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P1M"
js> var start = new Temporal.PlainDate(1970, 1, 28)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P30D"
js> var start = new Temporal.PlainDate(1970, 1, 29)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P29D"
js> var start = new Temporal.PlainDate(1970, 1, 30)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P28D"
js> var start = new Temporal.PlainDate(1970, 1, 31)
js> start.calendar.dateUntil(start, end, {largestUnit:"months"}).toString()
"P27D"Also compare to java.time.temporal, which doesn't always return "P1M":
jshell> import java.time.LocalDate
jshell> var end = LocalDate.of(1970, 2, 28)
end ==> 1970-02-28
jshell> var start = LocalDate.of(1970, 1, 28)
start ==> 1970-01-28
jshell> start.until(end)
$4 ==> P1M
jshell> var start = LocalDate.of(1970, 1, 29)
start ==> 1970-01-29
jshell> start.until(end)
$6 ==> P30D
jshell> var start = LocalDate.of(1970, 1, 30)
start ==> 1970-01-30
jshell> start.until(end)
$8 ==> P29D
jshell> var start = LocalDate.of(1970, 1, 31)
start ==> 1970-01-31
jshell> start.until(end)
$10 ==> P28DMetadata
Metadata
Assignees
Labels
meeting-agendanormativeWould be a normative change to the proposalWould be a normative change to the proposalspec-textSpecification text involvedSpecification text involved