I have forgotten

• https://me.yahoo.com
COST (GBP)
2.00
2.81
0

# week Of Year

viewed 2366 times and licensed 76 times
Computes the week number of a date - ISO, Excel and Simple standards implemented. \begin{html}Excel: WEEKNUM\end{html}
Controller: CodeCogs
Contents

C++

## Overview

This function returns the week number within the Gregorian calendar only.

There are three main standards:

 Standard Description wkn_Simple The simple week numbering scheme: week 1 starts on the 1st January of any given yearweek n+1 starts 7 days after week n wkn_Excel The Microsoft Excel numbering scheme: week 1 starts on the 1st January of any given yearweeks also start on a Monday (resulting in short week 1's) wkn_ISO The ISO8601 standard that defines a week number as: weeks start on a Monday.week 1 of a given year is the one that includes the first Thursday of that year or (equivalently) the week that includes January 4th.

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:
$a=\frac{14&space;-&space;month}{12}$
$y=year&space;-a$
$m=month+12a-2$
$d=\left&space;(&space;Day&space;+&space;y&space;+&space;\frac{y}{4}&space;-&space;\frac{y}{100}&space;+&space;\frac{y}{400}&space;+&space;\frac{31m}{12}&space;\right&space;)&space;mod\&space;&space;7&space;+1$
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..

## WeekOfYear

 intweekOfYear( int nDate weekNumStd standard = wkn_ISO int mode = 1 )
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 ");
for(int i=0;i<20;i++)
{
int d,m,y;
printf("\n %2d-%2d-%d %10s    %2d %2d %2d", d,m,y, weekday_str(dayOfWeek(adate+i)),
}
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  3

### Parameters

 nDate is a serial number of days from 24 November 4714 BC (1 January 4713BC in the Julian Calendar) - also known as the Julian Period. standard Default Value = wkn_ISO mode Default Value = 1

### Authors

Will Bateman (Oct 2004)
##### Source Code

Source code is available when you agree to a GP Licence or buy a Commercial Licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.