This week is ...

Week 17

Week 17 is from Monday, April 22, 2024 until (and including) Sunday, April 28, 2024.

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('2020-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! Contact us: [email protected]