67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#include <stdio.h>
							 | 
						||
| 
								 | 
							
								#include <stdlib.h>
							 | 
						||
| 
								 | 
							
								#include "caldate.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								char *montab[] = {
							 | 
						||
| 
								 | 
							
								  "January"
							 | 
						||
| 
								 | 
							
								, "February"
							 | 
						||
| 
								 | 
							
								, "March"
							 | 
						||
| 
								 | 
							
								, "April"
							 | 
						||
| 
								 | 
							
								, "May"
							 | 
						||
| 
								 | 
							
								, "June"
							 | 
						||
| 
								 | 
							
								, "July"
							 | 
						||
| 
								 | 
							
								, "August"
							 | 
						||
| 
								 | 
							
								, "September"
							 | 
						||
| 
								 | 
							
								, "October"
							 | 
						||
| 
								 | 
							
								, "November"
							 | 
						||
| 
								 | 
							
								, "December"
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main(int argc, char **argv)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  int year;
							 | 
						||
| 
								 | 
							
								  long daystart;
							 | 
						||
| 
								 | 
							
								  long dayend;
							 | 
						||
| 
								 | 
							
								  long day;
							 | 
						||
| 
								 | 
							
								  int weekday;
							 | 
						||
| 
								 | 
							
								  struct caldate cd;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  while (*++argv) {
							 | 
						||
| 
								 | 
							
								    year = atoi(*argv);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    cd.year = year;
							 | 
						||
| 
								 | 
							
								    cd.month = 1;
							 | 
						||
| 
								 | 
							
								    cd.day = 1;
							 | 
						||
| 
								 | 
							
								    daystart = caldate_mjd(&cd);
							 | 
						||
| 
								 | 
							
								    cd.year = year + 1;
							 | 
						||
| 
								 | 
							
								    dayend = caldate_mjd(&cd);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    while ((daystart + 3) % 7) --daystart;
							 | 
						||
| 
								 | 
							
								    while ((dayend + 3) % 7) ++dayend;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for (day = daystart;day < dayend;++day) {
							 | 
						||
| 
								 | 
							
								      caldate_frommjd(&cd,day,&weekday,(int *) 0);
							 | 
						||
| 
								 | 
							
								      if (cd.year != year)
							 | 
						||
| 
								 | 
							
									printf("   ");
							 | 
						||
| 
								 | 
							
								      else {
							 | 
						||
| 
								 | 
							
									if (cd.month & 1)
							 | 
						||
| 
								 | 
							
									  if (cd.day < 10)
							 | 
						||
| 
								 | 
							
									    printf(" %d%c%d ",cd.day % 10,8,cd.day % 10);
							 | 
						||
| 
								 | 
							
									  else
							 | 
						||
| 
								 | 
							
									    printf("%d%c%d%d%c%d ",cd.day / 10,8,cd.day / 10,cd.day % 10,8,cd.day % 10);
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
									  printf("%2d ",cd.day);
							 | 
						||
| 
								 | 
							
								        if (weekday == 6) {
							 | 
						||
| 
								 | 
							
									  if ((cd.day >= 15) && (cd.day < 22))
							 | 
						||
| 
								 | 
							
									    printf(" %s %d\n",montab[cd.month - 1],year);
							 | 
						||
| 
								 | 
							
									  else
							 | 
						||
| 
								 | 
							
									    printf("\n");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    printf("\n");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  exit(0);
							 | 
						||
| 
								 | 
							
								}
							 |