Code:
# include <stdio.h>
int new_years_day(int day, int year);
int no_of_days(int months, int year);
int first_day(int day, int year, int months);
int main(void)
{
int choice, day = 0, months = 0, year = 0;
printf("Choose a function\n (1) new_years_day (2) no_of_days (3) first_day >> ");
scanf("%d", &choice);
if (choice == 1)
new_years_day(day, year);
else if (choice == 2)
no_of_days(months, year);
else if (choice == 3)
first_day(day, year, months);
else
{
printf("\nPlease enter a number between 1 and 3 >> ");
scanf("%d", &choice);
}
return 0;
}
int new_years_day(int day, int year)
{
int i = 0, leap = 0;
// ask user for year between 1900 and 1999
printf("Enter a year between 1900 and 1999 >> ");
scanf("%d", &year);
// check that user enters a valid year
while (year < 1900 || year > 1999)
{
// print error message
printf("You can only choose a year between 1900 and 1999!! >> ");
scanf("%d", &year);
}
for ( i = day; day <= 6; day++)
/* Problem: need to count no. of years after 1900 and loop between 0 and 6
the right number of times to get the right day */
// leap year check
while ((year % 400 == 0) && (year % 4 == 0) && (year % 100 > 0))
leap = 1; // is a leap year
// find correct day
if (year == 1900)
{
day = 1;
printf("\nThe first day of the year in %d was a %d (0 - Sunday, 6 - Saturday)\n", year, day);
}
else if (leap = 1)
{
day = day + 2;
printf("\nThe first day of the year in %d was a %d (0 - Sunday, 6 - Saturday)\n", year, day);
}
else if (leap = 0)
{
day++;
printf("\nThe first day of the year in %d was a %d (0 - Sunday, 6 - Saturday)\n", year, day);
}
return year, day;
}
int no_of_days(int months, int year)
{
int i, current, leap = 0;
// ask user for year between 1900 and 1999
printf("Enter a year between 1900 and 1999 >> ");
scanf("%d", &year);
// check that user enters a valid year
while (year < 1900 || year > 1999)
{
// print error message
printf("You can only choose a year between 1900 and 1999!! >> ");
scanf("%d", &year);
}
// ask user for a month between 1 and 12
printf("Enter a month between 1 and 12 >> ");
scanf("%d", &months);
// check that user enters a valid month
while (months < 1 || months > 12)
{
// print error message
printf("You can only choose a month between 1 and 12!! >> ");
scanf("%d", &months);
}
return months, year;
}
int first_day(int day, int year, int months)
{
int i, current, leap = 0;
// ask user for year between 1900 and 1999
printf("Enter a year between 1900 and 1999 >> ");
scanf("%d", &year);
// check that user enters a valid year
while (year < 1900 || year > 1999)
{
// print error message
printf("You can only choose a year between 1900 and 1999!! >> ");
scanf("%d", &year);
}
// ask user for a month between 1 and 12
printf("Enter a month between 1 and 12 >> ");
scanf("%d", &months);
// check that user enters a valid month
while (months <1 || months >12)
{
// print error message
printf("You can only choose a month between 1 and 12!! >> ");
scanf("%d", &months);
}
return day, year, months;
}