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;
}