Thomas Keffer <[email protected]> writes: > Damn. I just realized we have the same problem with years. Quick, what is > 2016-02-29 minus one year?
One good answer is 2015-03-01, and another is 2015-02-28. I prefer 3/1. I would suggest stepping back and asking why we do these calculations, hat answers are sensible/useful, and what properties the calculations need. I saw a notion that this basic math property should hold one_month_after( one_month_before(X) ) = X but I'm not sure that's a requirement. The math nerd in me can certainly see the appeal, but also that our calendar doesn't work that way. If someone wants to make a graph over "a month ago to now", or ask "what was the low temperature over the last month" on some particular day, that's a reasonable question. I think it's just as reasonable a question to ask as "over the last 30 days" or "over the last 29.57 days". I think it's reasonable to take Y-M-D and subtract one month, and then move forward if that's invalid, so 2019-01-15 => 2018-12-15 2019-03-28 => 2019-02-28 2019-03-29 => 2019-03-01 2019-03-30 => 2019-03-01 2019-03-31 => 2019-03-01 2019-04-01 => 2019-03-01 and so be it. Yes, the time interval between these pairs varies - but our months do have different lengths. Humans don't expect to be able to say "what was the date a month ago" and then "on that date, what's a month in the future" and get the same date. Humans also don't expect a fixed answer to "between a month ago and now, how many days are there". If people want to ask the question "30 days ago", that's fine, and they should be able to do that instead. -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/rmief0b9mgg.fsf%40s1.lexort.com.
