What's the Current Week Number?

This week is ...

 

Week 12

Week 12 is from Monday, March 18, 2024 until (and including) Sunday, March 24, 2024.

Week number according to the ISO-8601 standard, weeks starting on Monday. The first week of the year is the week that contains that year's first Thursday (='First 4-day week'). ISO representation: 2024-W12

The highest week number in a year is either 52 or 53.
2024 has 52 weeks.

ISO 8601 is not the only week numbering system in the world, other systems use weeks starting on Sunday (US) or Saturday (Islamic).

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

Programming routines

Microsoft Excel / LibreOffice Calc

=ISOWEEKNUM(TODAY())
or (in older versions):
=WEEKNUM(TODAY(),21)

Where the return type '21' is ISO-8601 (week starting on Monday).

In Excel 2007 your best choice is WEEKNUM(TODAY(),2) (2=week starting Monday).
WEEKNUM(TODAY()) will show the week number with weeks starting on Sunday (return type = 1).

Google Docs Spreadsheet

=WEEKNUM(TODAY();21)

Type (here '21') is compatible with Excel/LibreOffice, 21 is ISO-8601

PHP

$weekNumber = date("W"); 

or date("W", epoch) for other week numbers. Remember to use capital 'W' not 'w'.

Python

datetime.date.today().isocalendar()[1]

PERL

my $weekNumber = POSIX::strftime("%V", gmtime time);

Replace time with other epoch/UNIX timestamps for other week numbers.

Java

Calendar now = Calendar.getInstance();
now.get(Calendar.WEEK_OF_YEAR);

Use WEEK_OF_YEAR in the Calendar class.
More info on Stack Overflow

JavaScript

Date.prototype.getWeek = function () {
    var target  = new Date(this.valueOf());
    var dayNr   = (this.getDay() + 6) % 7;
    target.setDate(target.getDate() - dayNr + 3);
    var firstThursday = target.valueOf();
    target.setMonth(0, 1);
    if (target.getDay() != 4) {
        target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7);
    }
    return 1 + Math.ceil((firstThursday - target) / 604800000);
}

var d= new Date();
alert(d.getWeek());

Extend the Date class using the above code.

C#

See the ISO-8601 update on Stack Overflow

MySQL

SELECT WEEKOFYEAR(NOW())

Replace now() with other dates eg. SELECT WEEKOFYEAR('2024-02-20');
(You can also use the WEEK function with mode=3 select week(now(),3))

PostgreSQL

SELECT * FROM EXTRACT(WEEK from current_date())

MS SQL

SELECT DATEPART( wk, GETDATE() )

Oracle

SELECT to_char(sysdate, 'IW') FROM DUAL 

IW: Week of year (1-52 or 1-53) based on the ISO-8601 standard.
WW: Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year (Mostly NOT used)

iSeries SQL

SELECT WEEK(NOW())  from sysibm.sysdummy1

iPhone/Mac

[NSString stringWithFormat:@"Week %d",
  [calendar ordinalityOfUnit:NSWeekCalendarUnit inUnit:NSYearCalendarUnit forDate:date]]; 

iPhone/iOS/Swift

let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
gregorian.firstWeekday = 2 // Monday
gregorian.minimumDaysInFirstWeek = 4
let components =
    gregorian.components(.WeekOfYearCalendarUnit | .YearForWeekOfYearCalendarUnit, fromDate: date)
let week = components.weekOfYear
let year = components.yearForWeekOfYear

R

lubridate::week()

Ruby

week_number = Time.now.strftime("%U")

Replace Time.now with Time.local(year,month,day) for other dates.
Formats:
%U - Week number of the year, starting with the first Sunday as the first day of the first week (00..53)
%V - Week number of year according to ISO-8601 (01..53)
%W - Week number of the year, starting with the first Monday as the first day of the first week (00..53)

Go

year, week := time.Now().ISOWeek()

Linux/Unix shell (bash)

date +%V 

Returns the ISO-8601 week number.
Other formats under 'Ruby'. More details in the Linux Programmer's Manual

Lua

Current_week = os.date("%V")

Formats: see formats under 'Ruby'.

Windows PowerShell

Get-Date -UFormat %V
# or
"{0:d2}" -f ($(Get-Culture).Calendar.GetWeekOfYear($(Get-Date),
  [System.Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday))

X++ (Microsoft Dynamics AX)

int weeknum;
weeknum = weekOfYear(today());

C/AL (Microsoft Dynamics NAV):

MESSAGE(FORMAT(CALCDATE('CW', TODAY), 0, '<week>'));

 
Thanks to everyone who sent me corrections and updates!

Comments and questions