<!-- Last Updated: 2003/5/19 -->
<calendarAlgSpec underlyingGranularity="ADsecond"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="calAlg.xsd">
	
	<granularity name = "ADminute">
		<group  groupBy = "60">
			<baseGranularity  name = "ADsecond"/>
		</group>
	</granularity>
	
	<granularity name = "ADhour">
		<group  groupBy = "60">
			<baseGranularity  name = "ADminute"/>
		</group>
	</granularity>

	<granularity name = "ADday">
		<group  groupBy = "24">
			<baseGranularity  name = "ADhour"/>
		</group>
	</granularity>
	
	<granularity name = "ADweek">
		<group  groupBy = "7">
			<baseGranularity  name = "ADday"/>
		</group>
	</granularity>

	<intermediateGranularity name = "psuedomonth">
		<!-- fix November -->
		<alter  groupSize = "12"  granuleToModify = "11"  modifyBy = "-1">
			<baseGranularity  name = "ADday"/>
			<!-- fix September -->
			<alter  groupSize = "12"  granuleToModify = "9"  modifyBy = "-1">
				<baseGranularity  name = "ADday"/>	
				<!-- fix June -->
				<alter  groupSize = "12"  granuleToModify = "6"  modifyBy = "-1">
					<baseGranularity  name = "ADday"/>
					<!-- fix April -->
					<alter  groupSize = "12"  granuleToModify = "4"  modifyBy = "-1">
						<baseGranularity  name = "ADday"/>
						<!-- (starts to) fix February -->
						<alter  groupSize = "12"  granuleToModify = "2"  modifyBy = "-3">
							<baseGranularity  name = "ADday"/>
							<group  groupBy = "31">
								<baseGranularity  name = "ADday"/>
							</group>
						</alter>
					</alter>
				</alter>
			</alter>
		</alter>
	</intermediateGranularity>
	
	<granularity name = "ADmonth">
		<!-- fix greg February -->
		<alter  groupSize = "4800"  granuleToModify = "4790"  modifyBy = "1">
			<baseGranularity  name ="ADday"/>
			<!-- fix century February -->
			<alter  groupSize = "1200"  granuleToModify = "1190"  modifyBy = "-1">
				<baseGranularity  name ="ADday"/>	
				<!-- fix leap cycle February -->
				<alter  groupSize = "48"  granuleToModify = "38"  modifyBy = "1">
					<baseGranularity  name ="ADday"/>
					<baseGranularity  name = "psuedomonth"/>
				</alter>
			</alter>
		</alter>
	</granularity>

	<granularity name = "ADyear">
		<group  groupBy = "12">
			<baseGranularity  name = "ADmonth"/>
		</group>
	</granularity>


	<!-- The following granularities are not a part of the original 
	     ADGregorianCalendar, but I have added them here to demonstrate some
	     of the other calendar algebra operations. -->
	<granularity name = "Sunday">
		<select-down startingGranule="1" numGranules="1">
			<baseGranularity  name = "ADday"/>
			<baseGranularity  name = "ADweek"/>
		</select-down>
	</granularity>
	     
	<granularity name = "Saturday">
		<select-down startingGranule="7" numGranules="1">
			<baseGranularity  name = "ADday"/>
			<baseGranularity  name = "ADweek"/>
		</select-down>
	</granularity>

	<granularity name = "Weekend">	     
		<union>
			<baseGranularity  name = "Saturday"/>
			<baseGranularity  name = "Sunday"/>
		</union>
	</granularity>	
	     
	<granularity name = "ADworkWeek">
		<combine>
			 <baseGranularity  name = "ADweek"/>
			 <baseGranularity  name = "ADweekDay"/>
		</combine>
	</granularity>	

	<granularity name = "FiscalYear">
		<anchored-group>
			 <baseGranularity  name = "ADmonth"/>
			 <baseGranularity  name = "October"/>
		</anchored-group>
	</granularity>	

</calendarAlgSpec>
