What's the Current Day Number?

Today Wednesday, December 11, 2024 is ...

Day 346

Day of the year is a number between 1 and 366 (in 2024), January 1 is day 1. 2024 is a leap year.
After today 20 days are remaining in this year.

This page uses the ISO-8601 ordinal date format.

There is also another less-used format: the 'ISO day of year' numbers, this is a number between 1 and 371, day 1 of the year is Monday of the first ISO week (where the first Thursday of the new year is in week 1).

Lists of day numbers by year: 2023 - 2024 - 2025 - 2026 ...

Programming routines

Microsoft Excel

Calculate today's day-number, starting from the day before Jan 1, so that Jan 1 is day 1.

=TODAY()-DATE(YEAR(TODAY()),1,0)
or, for any date entered in cell A1, calculate the corresponding day-number in that date’s year:
=A1-DATE(YEAR(A1),1,0)

Google Docs Spreadsheet

=DATEDIF(CONCAT("1-1-";year(now()));today();"D")+1

Calculates the difference between Jan 1 and today (=days past) then add 1 for today's daynumber. (Your date format (1-1-year) may be different)

LibreOffice Calc:

=ROUNDDOWN(DAYS(NOW(),DATE(YEAR(NOW()),1,1))) + 1

PHP

$dayNumber = date("z") + 1; 
You can use an epoch to find other day numbers:
date("z", epoch) + 1
date("z") starts counting from 0 (0 through 365)!

Python

from datetime import datetime
day_of_year = datetime.now().timetuple().tm_yday

PERL

use Time::Piece;
my $day_of_year = localtime->yday + 1;

# ... or ...
my $day_of_year = (localtime)[7] +1;

# ... or (if you really want to use POSIX) ...
use POSIX;
my $day_of_year = POSIX::strftime("%j", time);

Replace time with other epochs for other days.

MySQL

SELECT DAYOFYEAR(NOW())
Day number between 1 and 366. Replace now() with other dates eg.:
SELECT DAYOFYEAR('2024-02-20');

Oracle

select to_char(sysdate, 'DDD') from dual
select to_char(to_date('2024-02-20','YYYY-MM-DD'), 'DDD') from dual

Delphi

using DateUtils, SysUtils;
DayOfTheYear(Date);

Microsoft Access

DatePart("y", Now())

Visual Basic (VB.NET)

Dim dayOfYear As Integer = DateTime.Now.DayOfYear

JavaScript

var today = new Date();
Math.ceil((today - new Date(today.getFullYear(),0,1)) / 86400000);

Or add a 'Day of Year' method to the date object:

Date.prototype.getDOY = function() {
  var onejan = new Date(this.getFullYear(),0,1);
  return Math.ceil((this - onejan) / 86400000);
}
var today = new Date();
var daynum = today.getDOY();

Java

LocalDate.now().getDayOfYear();

Unix/Linux

date +%j

ColdFusion

#dayofyear(now())# 

Objective C

int currentDay;
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"D"];
date = [NSDate date];
currentDay = [[dateFormatter stringFromDate:date] intValue];

C++

Read the comment below by Mmars.

C#

int iDayOfYear = System.DateTime.UtcNow.DayOfYear;

R

format(Sys.Date(), "%j")

Ruby

time = Time.new
puts time.yday

Powershell

$DayOfYear = (Get-Date).DayofYear
Write-Host $DayOfYear

LiveCode

on mouseUp
put "January 1," && the last word of the long date into firstDayofYear --append current year
convert firstDayofYear to seconds -- from Jan 1, 1970 to first day of this year
put the long date into currentDay
convert currentDay to seconds -- from Jan 1, 1970 GMT to today
put currentDay - firstDayofYear into totalSeconds
answer the round of (totalSeconds / (60*60*24)) + 1 --display total days in dialog box
end mouseUp
Or:
on mouseUp
answer DayOfYear()
end mouseUp

function DayOfYear
put the short date into currentDate
convert currentDate to dateItems --list of date elements separated by commas
put item 1 of currentDate into year
put item 2 of currentDate into month
put item 3 of currentDate into day
put floor (275 * month / 9) into N1
put floor ( (month + 9) / 12) into N2
put (1 + floor ( (year - 4 * floor (year / 4) + 2) / 3) ) into N3
put N1 - (N2 * N3) + day - 30 into N
return N
end DayOfYear

function floor pNumber -- LiveCode has no built-in floor() function
put Round (pNumber) into theInteger
if theInteger > pNumber then
put theInteger - 1 into theInteger
end if
return theInteger
end floor

T-SQL (Transact-SQL)

SELECT DATEPART(DAYOFYEAR, SYSDATETIME())
or
SELECT datediff(day,CAST(datepart(year,getdate()) AS CHAR(4)) + '-01-01',getdate()+1)
  AS number_of_today

Go (golang)

day := time.Now().YearDay()

Matlab

dayNumber = today-datenum(['1-Jan-' year(today)])+1

Powerbuilder

Read the comment below by Danny Cruz.

 
Thanks to all the developers who contributed to this page! (read comments below)


Comments and questions