weekOfYear
Computes the week number of a date - ISO, Excel and Simple standards implemented. \begin{html}<span align="right" style="background-color:99FF99"><strong>Excel: WEEKNUM</strong></span>\end{html}
You're viewing an older version of this page (#199). View the current version.
Interface
#include <codecogs/units/date/weekofyear.h>
using namespace Units::Date;
Overview
This function returns the week number within the Gregorian calendar only.
There are three main standards: \copydoc constants weekNumStd
Most implementations of these systems allow a week to start on Sunday rather than on a Monday, see Mode
The ISO 8601 solution is based on:
where all divisions are an integer (rounding down) and d will contain the day of the week: 1 for Sunday, 2 for Monday, 3 for Tuesday, etc..
FUNCTION
weekOfYear
Computes the week number of a date using either the ISO, Excel or Simple methodologies.
References
www.faqs.org/faqs/calendars/faq/part3/
www.phys.uu.nl/~vgent/calendar/isocalendar.htm
www.proesite.com/timex/wkcalc.htm
Example 1
#include <stdio.h>
#include <codecogs/units/date/weekofyear.h>
#include <codecogs/units/date/dateymd.h>
#include <codecogs/units/date/date.h>
#include <codecogs/units/date/dayofweek.h>
#include <codecogs/units/date/weekday_str.h>
using namespace Units::Date;
int main()
{
printf("\n Date Simple Excel ISO ");
int adate=date("25 Dec 2002");
for(int i=0;i<20;i++)
{
int d,m,y;
dateYMD(adate+i, y, m, d);
printf("\n %2d-%2d-%d %10s %2d %2d %2d", d,m,y, weekday_str(dayOfWeek(adate+i)),
weekOfYear(adate+i, wkn_Simple, 1),
weekOfYear(adate+i, wkn_Excel, 1),
weekOfYear(adate+i, wkn_ISO, 1));
}
return 0;
}Output:
Date Simple Excel ISO
25-12-2002 Wednesday 52 52 52
26-12-2002 Thursday 52 52 52
27-12-2002 Friday 52 52 52
28-12-2002 Saturday 52 52 52
29-12-2002 Sunday 52 53 1
30-12-2002 Monday 52 53 1
31-12-2002 Tuesday 53 53 1
1- 1-2003 Wednesday 1 1 1
2- 1-2003 Thursday 1 1 1
3- 1-2003 Friday 1 1 1
4- 1-2003 Saturday 1 1 1
5- 1-2003 Sunday 1 2 2
6- 1-2003 Monday 1 2 2
7- 1-2003 Tuesday 1 2 2
8- 1-2003 Wednesday 2 2 2
9- 1-2003 Thursday 2 2 2
10- 1-2003 Friday 2 2 2
11- 1-2003 Saturday 2 2 2
12- 1-2003 Sunday 2 3 3
13- 1-2003 Monday 2 3 3Parameters
Will Bateman (Oct 2004)