I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com
get GPL
COST (GBP)
this unit 2.00
sub units 2.81
+
0
UnitsDate

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

Dependents

Info

Interface

C++

Overview

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

There are three main standards:

StandardDescription
wkn_Simple The simple week numbering scheme:
  • week 1 starts on the 1st January of any given year
  • week n+1 starts 7 days after week n</td></tr>

wkn_Excel The Microsoft Excel numbering scheme:
  • week 1 starts on the 1st January of any given year
  • weeks 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: 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

 
intweekOfYearintnDate
weekNumStdstandard = wkn_ISO
intmode = 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 ");
  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  3

Parameters

nDateis a serial number of days from 24 November 4714 BC (1 January 4713BC in the Julian Calendar) - also known as the Julian Period.
standardDefault Value = wkn_ISO
modeDefault 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.