Add to Favorites    Make Home Page 2743 Online  
 Language Categories  
 Our Services  

Home » C Home » Beginners / Lab Assignments Home » Calender Program in C


Search Projects & Source Codes:

Title Calender Program in C
Author Leya
Author Email leyajacob [at]
Description This was an assignment given to me last semester. (S3 in B.Tech). This is a very simple, down to earth program to generate the calendar for any given year from the 21st century onwards. It has no extra trimmings and is very easy to understand.
Category C » Beginners / Lab Assignments
Hits 370219
Code Select and Copy the Code
//Program to display calender for a given year #include <stdio.h> #include <conio.h> #include <process.h> #include <ctype.h> unsigned long days=0; //stores the days elapsed since 01.01.1899 void display(int n) //contains the number of days to display { int i, column, k, flag=0, j; printf("Sun Mon Tues Wed Thur Fri Sat "); for(i=1; i<=n; i++) { k=days%7;//remainder gives the starting day of each month if(flag==0) { for(j=1; j<=k; j++)//controls tabs of first week printf(" "); flag=1;//ensures that block is only executed once column=k; } printf("%d ", i); column++; if(column%7==0)//prints new line at the end of each week printf(" "); } printf(" Press any key to continue "); getch(); } void calculate(int year) //function calculates no. of days elapsed since 1899 { int i, month; for(i=1899; i<year; i++) //1899 chosen because Jan 1, 1899 is a Sunday { if((i%400==0)?1:((i%100==0)?0:((i%4==0)?1:0))) /*This is because a leap year does not strictly fall on every fourth year. If a year is divisible by 4, then it is a leap year, but if that year is divisible by 100, then it is not a leap year. However, if the year is also divisible by 400, then it is a leap year. Eg: 1900 is not a leap year*/ days+=366; else days+=365; } for(month=1; month<=12; month++) { printf(" "); switch(month) /*switch case used to display each month and increment no. of days*/ { case 1: printf(" JANUARAY %d ", year); display(31); days+=31; break; case 2: printf(" FEBURARY %d ", year); if((year%400==0)?1:((year%100==0)?0:((year%4==0)?1:0))) { display(29); days+=29; } else { display(28); days+=28; } break; case 3: printf(" MARCH %d ", year); display(31); days+=31; break; case 4: printf(" APRIL %d ", year); display(30); days+=30; break; case 5: printf(" MAY %d ", year); display(31); days+=31; break; case 6: printf(" JUNE %d ", year); display(30); days+=30; break; case 7: printf(" JULY %d ", year); display(31); days+=31; break; case 8: printf(" AUGUST %d ", year); display(31); days+=31; break; case 9: printf(" SEPTEMBER %d ", year); display(30); days+=30; break; case 10: printf(" OCTOBER %d ", year); display(31); days+=31; break; case 11: printf(" NOVEMBER %d ", year); display(30); days+=30; break; case 12: printf(" DECEMBER %d ", year); display(31); days+=31; break; } } } void main() { char ch[10]; int i, year, choice; do { clrscr(); days=0; printf("Enter the year in 'yyyy' format: "); scanf("%s", ch);//stores input first as a string for(i=0; i<strlen(ch); i++) if(ch[i]<'0' || ch[i]>'9')//checks for invalid inputs { printf(" Invalid Year!"); printf(" END OF PROGRAM"); getch(); exit(0); } year = atoi(ch); //converts the year from string to integer datatype clrscr(); printf(" Calender for Year %d", year); printf(" ********************** "); calculate(year); //calls function to calculate no. of days elapsed printf(" ******************************************* "); printf(" Press 1 to continue, 2 to exit "); scanf("%d", &choice); }while(choice==1); clrscr(); printf(" END OF PROGRAM"); getch(); }

Related Source Codes

Script Name Author
The Game Opposite as seen on Nokia 2300 Mobile Manikanta
Radix Sort ashish
Change your mouse pointer Ashim
The blinking star Shashank
Data Validation Crylittlebaby
To search a file by giving file type like mp3 or mpeg or doc Prashanth SR
Menus Demonstration B.Chidhambaram
Employee Database Project Using C. Reenku Raman Nayak
Creating a Lexical Analyzer in c fahad bader al-buhairi դ ? ??
Calendar Program Omkar & Devendra
Stop double Process for start in C Cedrik Jurak
Stop double Process for start in C Cedrik Jurak
Time Scheduler Atiq Anwar
A timepass game between atmost two players Rahul Roy


Google Groups Subscribe to SourceCodesWorld - Techies Talk

Free eBook - Interview Questions: Get over 1,000 Interview Questions in an eBook for free when you join JobsAssist. Just click on the button below to join JobsAssist and you will immediately receive the Free eBook with thousands of Interview Questions in an ebook when you join.

New! Click here to Add your Code!

ASP Home | C Home | C++ Home | COBOL Home | Java Home | Pascal Home
Source Codes Home Page


Google Search


Source Codes is a part of Vyom Network.

Vyom Network : Web Hosting | Dedicated Server | Free SMS, GRE, GMAT, MBA | Online Exams | Freshers Jobs | Software Downloads | Interview Questions | Jobs, Discussions | Placement Papers | Free eBooks | Free eBooks | Free Business Info | Interview Questions | Free Tutorials | Arabic, French, German | IAS Preparation | Jokes, Songs, Fun | Free Classifieds | Free Recipes | Free Downloads | Bangalore Info | Tech Solutions | Project Outsourcing, Web Hosting | GATE Preparation | MBA Preparation | SAP Info | Software Testing | Google Logo Maker | Freshers Jobs

Sitemap | Privacy Policy | Terms and Conditions | Important Websites
Copyright ©2003-2024, All Rights Reserved.
Page URL:

Download Yahoo Messenger | Placement Papers | Free SMS | C Interview Questions | C++ Interview Questions | Quick2Host Review