This week is ...
Week 49 is from Monday, December 2, 2024 until (and including) Sunday, December 8, 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]