Calendar
Application using
C
Project Abstract
The calendar application presented hear is a very simple console
application developed using C programming language.
It is built without using graphic properties ; instead, it utilizes
many windows properties to give the application a colorful look
and feel.
It is compiled in Code Blocks using GCC compiler.
Features
The Key Features of this Calendar application are:
Windows properties have been using to make the overall
application Simple.
File handing has been used in this application.
It provides a very simple interface and displays days , dates ,
months , and years based on the input given by the user.
Working
At first , the user needs to provide month and year as input .
Example: 2023 . This displays the calendar for year 2023.
The application display days corresponding to a given date.
It also display days and dates corresponding to a particular
month and year.
C-Code
#include <stdio.h>
// Function that returns the index of the
// day for date DD/MM/YYYY
int dayNumber(int day, int month, int year)
{
static int t[] = { 0, 3, 2, 5, 0, 3,
5, 1, 4, 6, 2, 4 };
year -= month < 3;
return (year + year / 4
- year / 100
+ year / 400
+ t[month - 1] + day)
% 7;
}
// Function that returns the name of the
// month for the given month Number
// January - 0, February - 1 and so on
char* getMonthName(int monthNumber)
{
char* month;
switch (monthNumber) {
case 0:
month = "January";
break;
case 1:
month = "February";
break;
case 2:
month = "March";
break;
case 3:
month = "April";
break;
case 4:
month = "May";
break;
case 5:
month = "June";
break;
case 6:
month = "July";
break;
case 7:
month = "August";
break;
case 8:
month = "September";
break;
case 9:
month = "October";
break;
case 10:
month = "November";
break;
case 11:
month = "December";
break;
}
return month;
// Function to return the number of days
// in a month
int numberOfDays(int monthNumber, int year)
{
// January
if (monthNumber == 0)
return (31);
// February
if (monthNumber == 1) {
// If the year is leap then Feb
// has 29 days
if (year % 400 == 0
|| (year % 4 == 0
&& year % 100 != 0))
return (29);
else
return (28);
}
// March
if (monthNumber == 2)
return (31);
// April
if (monthNumber == 3)
return (30);
// May
if (monthNumber == 4)
return (31);
// June
if (monthNumber == 5)
return (30);
// July
if (monthNumber == 6)
return (31);
// August
if (monthNumber == 7)
return (31);
// September
if (monthNumber == 8)
return (30);
// October
if (monthNumber == 9)
return (31);
// November
if (monthNumber == 10)
return (30);
// December
if (monthNumber == 11)
return (31);
}
// Function to print the calendar of
// the given year
void printCalendar(int year)
{
printf(" Calendar - %d\n\n", year);
int days;
// Index of the day from 0 to 6
int current = dayNumber(1, 1, year);
// i for Iterate through months
// j for Iterate through days
// of the month - i
for (int i = 0; i < 12; i++) {
days = numberOfDays(i, year);
// Print the current month name
printf("\n ------------%s-------------\n",
getMonthName(i));
// Print the columns
printf(" Sun Mon Tue Wed Thu Fri Sat\n");
// Print appropriate spaces
int k;
for (k = 0; k < current; k++)
printf(" ");
for (int j = 1; j <= days; j++) {
printf("%5d", j);
if (++k > 6) {
k = 0;
printf("\n");
}
}
if (k)
printf("\n");
current = k;
}
return;
}
// Driver Code
int main()
{
int year = 2018;
// Function Call
printCalendar(year);
return 0;
}