Year Types

ISO8601:1988 defines that a week begins on Monday. The first week of a year is the one which includes the first Thursday, or equivalently the one which includes January 4.

There are 14 possible year patterns (if one excludes 1752, the year when Great Britain and her colonies switched from the Julian to the Gregorian calendar, when 11 days were 'missed out' from September. However let us ignore such historical problems, otherwise other issues arise - such as before 1751 the New Year began on Lady Day (25 March) rather than 1 January).

The 14 possible year patterns are made from:

Whitaker's Almanac refers to these 14 years by year letter, in the range A to N.
Years B*,D*,F*,H*,J*,L*, and N* are Leap Years, '*' indicates a Leap Year in the rest of this page.
Years A,C,E,G,I,K, and M are Non-Leap Years

For the current period of interest:
YearYear Type
1997G
1998I
1999K
2000N*
2001C
2002E
2003G
2004J*

Year start:
Year TypeJan 1 falls on
A and B*Sunday
C and D*Monday
E and F*Tuesday
G and H*Wednesday
I and J*Thursday
K and L*Friday
M and N*Saturday

Year end:
Year TypeDec 31 falls on
N* and ASunday
B* and CMonday
D* and ETuesday
F* and GWednesday
H* and IThursday
J* and KFriday
L* and MSaturday
Year types H*,I, and J* have 53 weeks. All other year types have 52 weeks.

An examples of each year type is:
A B* C D* E F* G H* I J* K L* M N*
19951984199019961991198019971992199819761993198819942000

Within my code, the value 'x%7' is used, where 'x' is the day number of the year (1-366) minus the day of the week (1-7).
This is the date of the first Sunday in the year (except that '0' is used instead of '7').
The mapping between 'x%7' and the year type letter is:
x%7 0 1 2 3 4 5 6
Year LetterC/D*A/B*M/N*K/L*I/J*G/H*E/F*
Clearly one cannot tell from the first Sunday in the year whether the year is a Leap Year or not, hence the two possible year type letters in each case.

The sequence of year types is:
Year -1YearYear +1
L*/M A C/D*
M B* E
A/N* C E/F*
A D* G
B*/C E G/H*
C F* I
D*/E G I/J*
E H* K
F*/G I K/L*
G J* M
H*/I K M/N*
I L* A
J*/K M A/B*
K N* C
For each of these transitions, I have produced a snapshot of the week numbers at the year transition


This information provided by
Andrew Benham