List of 2016 Leap Day Bugs

The following is a list of all the bugs caught during leap day, February 29th, 2016. Each link below references the issue with supporting details where available.

If you're looking for information of how to avoid leap year bugs, or examples of disasterous leap year bugs from previous years, please read my article on the Microsoft Azure blog.

Please let me know if you have any corrections or additions. Thanks.

Last updated 2016-03-03 06:55 UTC

Verified / Deferred

Items in this section had an impact on February 29th, but resolved themselves on March 1st without any specific fix or resolution reported. One assumes that the vendor will take appropriate action before the 2020 leap day, but no confirmation has yet been provided.

Verified / Resolved

Items in this status were verified as bugs, and are now resolved. The fix may have already been released, or may be in an upcoming version.

Verified / Resolved / Unknown Impact

Items in this section are also verifed and resolved, but the vendor did not supply any supporting details as to what problems they actually had.

Verified / Unresolved

  • micro-strptime.js - date parsing library for JavaScript
    • Not in widespread usage, as far as I am aware.
    • No response yet from author.
  • PHP
    • Missing Feb 29 when using DateTime::createFromFormat with day of year placed before the year.
    • Reported in 2012, and never fixed. Reproducable in the current version.
    • Workaround: put the year first. May or may not be practical for all users.
  • Money Manager EX - open source personal finance software

Unconfirmed

These items surfaced during my search or were brought to my attention by others, however I have not been able to confirm their validity. They may or may not have been caused by the leap day, or possibly not have happened at all.

Honorary Mention

  • Python (in time.strptime function)
    • Not really a "bug", but just a commonly misused API.
    • Evaluating future change as an enhancement.
  • HTC Sync Manager
    • Appointments from Jan 1 - Feb 29 were off by a day.
    • Affected users for many weeks.
    • Fixed in version 3.1.67.0, released in January (before leap day)
  • A "We I.D." digital sign
    • Mysteriously calculated the date of birth to be 21 years old as 1932.
    • (2016 - 1932 = 84     84 / 4 = 21)
  • TimeHop iOS/Android app
    • Only showed tweets from four years ago, instead of the usual one year.
    • It's not a bug, it's a feature!

Looking to avoid leap year bugs next time around? Check out my original post about leap year bugs. And don't forget - December 31st 2016 is another important date!

Also, we're just around the corner for the start or end of daylight saving time (depending on where you live). Be sure to read my post from last year, Five Common Daylight Saving Time Antipatterns of .NET Developers.

Pluralsight
If you enjoy this topic, please consider watching my Pluralsight course, Date and Time Fundamentals.