Submission
Status:
P-PP-------------P--
Score: 20
User: Nathlol2
Problemset: ปฏิทินวันแม่
Language: cpp
Time: 0.002 second
Submitted On: 2024-09-27 16:27:30
// C++ program two find number of
// days between two given dates
#include <iostream>
using namespace std;
// A date has day 'd', month 'm' and year 'y'
struct Date {
int d, m, y;
};
// To store number of days in
// all months from January to Dec.
const int monthDays[12]
= { 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
// This function counts number of
// leap years before the given date
int countLeapYears(Date d)
{
int years = d.y;
// Check if the current year needs to be
// considered for the count of leap years
// or not
if (d.m <= 2)
years--;
// An year is a leap year if it
// is a multiple of 4,
// multiple of 400 and not a
// multiple of 100.
return years / 4
- years / 100
+ years / 400;
}
// This function returns number of
// days between two given dates
int getDifference(Date dt1, Date dt2)
{
// COUNT TOTAL NUMBER OF DAYS
// BEFORE FIRST DATE 'dt1'
// initialize count using years and day
long int n1 = dt1.y * 365 + dt1.d;
// Add days for months in given date
for (int i = 0; i < dt1.m - 1; i++)
n1 += monthDays[i];
// Since every leap year is of 366 days,
// Add a day for every leap year
n1 += countLeapYears(dt1);
// SIMILARLY, COUNT TOTAL NUMBER OF
// DAYS BEFORE 'dt2'
long int n2 = dt2.y * 365 + dt2.d;
for (int i = 0; i < dt2.m - 1; i++)
n2 += monthDays[i];
n2 += countLeapYears(dt2);
// return difference between two counts
return (n2 - n1);
}
// Driver code
int main(){
int m, d;
scanf("%d %d", &m, &d);
Date dt1 = { d, m, 2022 };
Date dt2 = { 12, 8, 2022 };
int day[7] = {1,2,3,4,5,6,7};
int x = getDifference(dt1, dt2);
int y = 6 - (x % 7);
// Function call
cout << ""
<< day[y];
return 0;
}