Date to Decimal Day of Year

Convert a vector of MATLAB serial dates to decimal days since the start of the year.

You are now following this Submission

This function calculates the decimal day of the year of the input vector of dates. The dates must be in MATLAB serial date format.

For example, for datestr(now), MATLAB produces: "18-Jan-2008 14:33:27". The output of this function, called "date2doy" yields-
date2doy(now): "18.60662".

There are two outputs, the decimal date (can be a vector), and the fraction of the year completed by that date. From the example above, the fraction of the year is: "0.0481"

This function is very fast, and is ideal for embedding in larger applications that call date2doy many times.

Cite As

Anthony Kendall (2026). Date to Decimal Day of Year (https://au.mathworks.com/matlabcentral/fileexchange/18316-date-to-decimal-day-of-year), MATLAB Central File Exchange. Retrieved .

Acknowledgements

Inspired: Day of Year to MATLAB date, deseason

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.2.0.0

Submitted modified file to FEX as detailed in file description.

1.0.0.0

In response to James' review, I've heavily modified this function and taken all of his suggestions. Also, the calculation, while simple, is not as trivial as James mentions.