HELP! Birthday Calculator, C language - TechRepublic
Question
October 30, 2008 at 02:07 PM
remarkable.rocket

HELP! Birthday Calculator, C language

by remarkable.rocket . Updated 17 years, 8 months ago

I have just started programming and I am VERY CONFUSED about this assignment. For some reason my code will only print Wednesday, no matter WHAT day or YEAR I enter. Yet, I feel like it should work just fine! What is going on?
Basically, it needs to ask the user for a date, and it will tell the user the weekday of that date. PLEASE HELP, I am in danger of failing this class and I DON’T KNOW WHAT TO DO!

#include
#include
#include

int calculateDateDay (int, int, int);
void printWeekday (int, int, int);
void printMonth (int);
void printDateDay(int, int, int);

int main ()
{
int day;
int month;
int year;
int weekday;

printf(“Enter a day of month (1-31):”);
scanf(“%d”, &day);
printf(“Enter a month (1-12):”);
scanf(“%d”, &month);
printf(“Enter a year:”);
scanf(“%d”, &year);

printDateDay(day, month, year);

}

void printMonth (int month)
{

switch(month)
{
case 1: printf( “January” );
break;
case 2: printf( “February” );
break;
case 3: printf( “March” );
break;
case 4: printf( “April” );
break;
case 5: printf( “May” );
break;
case 6: printf( “June” );
break;
case 7: printf( “July” );
break;
case 8: printf( “August” );
break;
case 9: printf( “September” );
break;
case 10: printf( “October” );
break;
case 11: printf( “November” );
break;
case 12: printf( “December” );
break;
}
}

int calculateDateDay (int month, int day, int year)
{

int dec31 = ((year – 1) * 365 + (year – 1) / 4 – (year – 1) / 100 + (year – 1) / 400 ) % 7;

switch(month)
{
case 12: day + 30;
case 11: day + 31;
case 10: day + 30;
case 9: day + 31;
case 8: day + 31;
case 7: day + 30;
case 6: day + 31;
case 5: day + 30;
case 4: day + 31;
case 3: day + 28;
case 2: day + 31;
case 1: day + 0 + dec31;
}

}

void printWeekday (int month, int day, int year)
{

int weekday = (calculateDateDay(month, day, year)) % 7;

switch(weekday)
{
case 0: printf(“Sunday”);
break;
case 1: printf(“Monday”);
break;
case 2: printf(“Tuesday”);
break;
case 3: printf(“Wednesday”);
break;
case 4: printf(“Thursday”);
break;
case 5: printf(“Friday”);
break;
case 6: printf(“Saturday”);
break;
}
}

void printDateDay (int day, int month, int year)
{

printMonth(month);
printf(” %d, “, day);
printf(“%d, is a “, year);
printWeekday(month, day, year);

}

This discussion is locked

All Comments