CodeCogs - An iteractive open source Numerical library Welcome... Login
CodeCogs
shopping cart
OSXWindowsLinux
Search CodeCogs
Numerical Components

Valid RSS

UnitsDate

week Of Year

Available under GPL (Free) and Commercial licence
get a GPL licence
COST (GBP)
this unit 2.08
sub units 2.34
add a commercial licence to your cart
0
viewed 2105 times and licensed 40 times

Computes the week number of a date - ISO, Excel and Simple standards implemented. Excel: WEEKNUM

Further Info Controller: CodeCogs  Contact Controller
+View version details
Contents hide toc
buy now     get GPL     add to cart

Group Description

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

Interface

#include <codecogs/units/date/weekofyear.h>

using namespace Units::Date;

int weekOfYear (int nDate, weekNumStd standard=wkn_ISO, int mode=1)
Computes the week number of a date - ISO, Excel and Simple standards implemented. Excel: WEEKNUM

Function Documentation

 
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:

To view or download source code you need either a GPL or Commercial Licence.

buy now     get GPL     add to cart

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


Page Comments

Format Excel Equations

  You must login to leave a messge


Last Modified: 19 Dec 07 @ 13:43     Page Rendered: 2010-03-08 19:59:31

Valid CSS!   Valid XHTML 1.0 Transitional