Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. struct date
  4. {
  5. int month;
  6. int day;
  7. int year;
  8. };
  9.  
  10. int calc_date_number(struct date a_date)
  11. {
  12. long f;
  13. long g;
  14. long N;
  15.  
  16. if (a_date.month <= 2) {
  17. f = a_date.year - 1;
  18. g = a_date.month + 13;
  19. }
  20. else
  21. {
  22. f = a_date.year;
  23. g = a_date.month + 1;
  24. }
  25. printf("f = %ld\n", f);
  26. printf("g = %ld\n", g);
  27. printf("day = %d\n", a_date.day);
  28.  
  29. N = (1461 * f / 4) + (153 * g / 5) + a_date.day;
  30. printf("calc_date_number: %ld\n", N);
  31.  
  32. return N;
  33. }
  34.  
  35. int calc_day_number(long int number)
  36. {
  37.  
  38. return (number - 621049) % 7;
  39. }
  40.  
  41. const char* display_day_of_week(int day_of_week)
  42. {
  43. const char* days[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
  44.  
  45. return days[day_of_week];
  46. }
  47.  
  48. int main()
  49. {
  50. struct date a_date;
  51. long days;
  52. long day_number;
  53. const char* dayofweek;
  54. int daysPerMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  55.  
  56. printf("Welcome to the Date to Day-of-Week program.\n");
  57. printf("\nThe program will give the day of the week for any date from 1/1/1900\n\n");
  58.  
  59. while (1)
  60. {
  61. printf("Enter date (mm/dd/yyyy): ");
  62. scanf("%d/%d/%d", &a_date.month, &a_date.day, &a_date.year);
  63.  
  64.  
  65. if (a_date.month < 1 || a_date.month > 12)
  66. {
  67. printf("Invalid month, please re-enter date.\n");
  68. continue;
  69. }
  70. else if (a_date.day < 1 || a_date.day > 31)
  71. {
  72. printf("Invalid day, please re-enter date.\n");
  73. continue;
  74. }
  75. else if (a_date.year < 1900) {
  76. printf("Invalid year, please re-enter date. Year must be greater than 1900\n");
  77. continue;
  78. }
  79.  
  80. days = calc_date_number(a_date);
  81. day_number = calc_day_number(days);
  82. dayofweek = display_day_of_week(day_number);
  83.  
  84. printf("%d/%d/%d falls on a %s.\n", a_date.month, a_date.day, a_date.year, dayofweek);
  85. break;
  86. }
  87.  
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement