Ad by Adsterra

Calendar in C/C++


This is how your out is look like


Introduction:

We will learn how to implement the code for printing the calendar of the year input by the user in this Calendar application project. By just specifying the appropriate year, the user may obtain the entire calendar.

User Case:

Using this specific project, printing the complete year's calendar becomes incredibly simple. Moreover, it can be used in various forms since calendars are useful tools for keeping track of upcoming meetings. They constantly assist us in being reminded of crucial dates and schedules.

Requirements for executing this Project:

You must have an IDE installed in order to execute and compile the C++ source code in order to complete this project. Dev C++ or Code Blocks are suggested for a better experience.

Download the Dev C++ or Code Blocks IDE using the links provided below.

Code Blocks:

https://sourceforge.net/projects/codeblocks/

Dev C++:

https://sourceforge.net/projects/orwelldevcpp/

Download Link:

Click here to download the project file

Project Code

Your project code is available here; feel free to copy it.




using namespace std;

/*A Function that returns the index of the day
of the date- day/month/year
For e.g-

Index	 Day
0		 Sunday
1		 Monday
2		 Tuesday
3		 Wednesday
4		 Thursday
5		 Friday
6		 Saturday*/
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;
}

/*
A Function that returns the name of the month
with a given month number

Month Number	 Name
0			 January
1			 February
2			 March
3			 April
4			 May
5			 June
6			 July
7			 August
8			 September
9			 October
10			 November
11			 December */
string getMonthName(int monthNumber)
{
	string months[] = {"January", "February", "March",
	"April", "May", "June"
	"July", "August", "September",
	"October", "November", "December"
					};

	return (months[monthNumber]);
}

/* A Function to return the number of days in
a month

Month Number	 Name	 Number of Days
0			 January	 31
1			 February 28 (non-leap) / 29 (leap)
2			 March	 31
3			 April	 30
4			 May		 31
5			 June	 30
6			 July	 31
7			 August	 31
8			 September 30
9			 October	 31
10			 November 30
11			 December 31

*/
int numberOfDays (int monthNumber, int year)
{
	// January
	if (monthNumber == 0)
		return (31);

	// February
	if (monthNumber == 1)
	{
		// If the year is leap then February 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 --> Iterate through all the months
	// j --> Iterate through all the 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).c_str());

		// 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 Program to check above functions
int main()
{
	int year = 2016;
	printCalendar(year);

	return (0);
}

Post a Comment

0 Comments