Miscellaneous › Others › C program to print calender to a file
- This topic has 0 replies, 1 voice, and was last updated 13 years, 10 months ago by Rakesh Bute.
-
AuthorPosts
-
January 12, 2011 at 2:42 am #534Rakesh ButeParticipant
Hi,
I’ve tried to make a C program to print calender to a specific file, which looks as follows—-
//
cut below here and paste in your C editor and compile
//6:53 PM 12/30/2009
//AUTHOR-Rakesh Bute
#include<stdio.h>
//
#define stdday 6
#define stdyr 2000
//
void main()
{ unsigned int y[3];
unsigned int m,d,dl,num;
char *ch,ca,dp[256];
char Header[36],*Months[12];
FILE *fp;
//
beig:
clrscr();
//
puts(“nWould you change O/P path::”);
ca=getch();
//
if(ca==’y’||ca==’Y’)
goto change;
fp=fopen(“C:/Calp.txt”,”r”);
//
if(fp==NULL)
{ change:
fp=fopen(“C:/Calp.txt”,”w”);
puts(“nEnter thefile path:: “);
gets(ch);
fputs(ch,fp);
fclose(fp);
goto beig;
}
//
fgets(dp,sizeof(dp),fp);
fclose(fp);
ch=dp;
fp=fopen(ch,”a”);
//
printf(“nEnter start year:: “);
scanf(“%ld”,&y[1]);
printf(“nEnter end year:: “);
scanf(“%ld”,&y[2]);
printf(“nPrint in screen too::”);
fflush(stdin);
ca=getch();
clrscr();
//
Months[0] = “nJANUARY “;
Months[1] = “nFEBRUARY “;
Months[2] =”nMARCH ” ;
Months[3] =”nAPRIL ” ;
Months[4] =”nMAY ” ;
Months[5] =”nJUNE ” ;
Months[6] =”nJULY ” ;
Months[7] =”nAUGUST ” ;
Months[8] =”nSEPTEMBER” ;
Months[9] =”nOCTOBER ” ;
Months[10]=”nNOVEMBER ” ;
Months[11]=”nDECEMBER ” ;
strcpy(Header,”nnn SUN MON TUE WED THU FRI SATnn”);
//
dl=stdday;
for(y[0]=stdyr;y[0]<=y[2];y[0]++)
{
//
for(m=1;m<=12;m++)
{ switch(m)
{ case 1 :num=31;break;
case 2 :num= 0;break;
case 3 :num=31;break;
case 4 :num=30;break;
case 5 :num=31;break;
case 6 :num=30;break;
case 7 :num=31;break;
case 8 :num=31;break;
case 9 :num=30;break;
case 10:num=31;break;
case 11:num=30;break;
case 12:num=31;break;
}
if(y[0]>=y[1])
{ printf(“%s”,Months[m-1]);
fprintf(fp,”%s”,Months[m-1]);
}
//
if(y[0]>=y[1])
{ printf(“%19d”,y[0]);
fprintf(fp,”%19d”,y[0]);
}
//
if(num==0) // The lip year logic
{ if(y[0]%400==0) //
num=29;
else if(y[0]%100==0)
num=28;
else if(y[0]%4==0)
num=29;
else if(y[0]%4!=0)
num=28;
}
//
if(y[0]>=y[1])
{
printf(“%s”,Header);
fprintf(fp,”%s”,Header);
}
//
if(y[0]>=y[1])
for(d=dl;d>0;d–)
{ printf(” “);
fprintf(fp,” “);
}
//
for(d=1;d<=num;d++)
{ if(y[0]>=y[1])
{ printf(“%4d”,d);
fprintf(fp,”%4d”,d);
}
//
if(((d+dl)%7==0)&&(y[0]>=y[1]))
{ printf(“n”);
fprintf(fp,”n”);
}
} //day close
//
dl=(d+dl-1)%7;
if(y[0]>=y[1])
{ printf(“nn”);
fprintf(fp,”nn”);
}
//
if(y[0]>=y[1]&&(ca==’y’||ca==’Y’))
getch();
} //month close
if(y[0]==y[1]+100)
{ puts(“nnThis program prints dates upto”);
puts(“”LOWERLIMIT+100YR” onlyb”);
break;
}
ch=NULL;
} //year close
//
fclose(fp);
puts(“nnRedo calculations? “);
fflush(stdin);
ca=getch();
//
if(ca==’y’||ca==’Y’)
goto beig;
//
getch();
}
//
the program ends here
Thank you…….
-
AuthorPosts
- You must be logged in to reply to this topic.