I did look up the help for that function to make this meme but I must have missed that option. in my defense I’ve only been using Python for like 10 years
Python does have a year option that they are not using.
No, it doesn’t:
help(datetime.timedelta)
Help onclass timedelta inmodule datetime:
class timedelta(builtins.object)
| Difference between two datetime values.
|
| timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
|
| All arguments are optionalanddefaultto0.
| Arguments may be integers or floats, and may be positive or negative.
The python version seems buggy as fuck. Depending on which year you run it it’s off by 1-3 days
Python does have a year option that they are not using. Depending on the application I would use 365 for a year to get a consistent number of days.
I did look up the
help
for that function to make this meme but I must have missed that option. in my defense I’ve only been using Python for like 10 yearsNo, it doesn’t:
help(datetime.timedelta)
Help on class timedelta in module datetime: class timedelta(builtins.object) | Difference between two datetime values. | | timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) | | All arguments are optional and default to 0. | Arguments may be integers or floats, and may be positive or negative.
Your right. I was thinking about pd.DateOffset()
That sounds serious, can you give some example values we can test?
look I’m not trying to be a dick or anything, but do you not know about leap years and which years they are?
Yes, and I have no idea…
Leap years are each fourth year, except each hundredth year, except each thousandth fourhundredth year.
1896 leap year
1900 not leap year
1904 leap year
…
1996 leap year
2000 leap year
2004 leap year
…
2096 leap year
2100 not leap year
2104 leap year
Then you just arrange the 10 year window in different positions to overlap 1 to 3 leap years to reveal the three outcomes of the bug.
- / - - - / - - - /
- - / - - - / - - -
- - 0 - - - / - - -
- is a normal year, / is a leap year, 0 is an exceptional non-leap year.
https://youtu.be/-5wpm-gesOY
edit: just realized it was the python and not ruby example, I was very tired and distracted when I was reading this thread.
Sure, here’s one example for each case:
1 day off: 3650 days before 1907-01-01 is 1897-01-02
2 days off: 3650 days before 2027-01-01 is 2017-01-03
3 days off: 3650 days before 2025-01-01 is 2015-01-04
29 February 2028, 29 February 2032, 29 February 2036…