cíu

 avatar
unknown
c_cpp
a year ago
2.2 kB
2
Indexable
class Solution {
public:
    string dayOfTheWeek(int day, int month, int year) {
        int date[60000];

        //ngày 1 tháng 1 năm 1971 là thứ 2

        int mon = 1, tue = 2, wed = 3, thu = 4, fri = 5, sat = 6, sun = 7;

        int cnt = 6745;
        while (cnt) {
            date[mon] = 2; mon += 7;
            date[tue] = 3; tue += 7;
            date[wed] = 4; wed += 7;
            date[thu] = 5; thu += 7;
            date[fri] = 6; fri += 7;
            date[sat] = 7; sat += 7;
            date[sun] = 8; sun += 7;

            cnt--;
        }

        int sum_of_date = 0;

        for (int i = 1971; i < year; i++) {
            sum_of_date += 365;

            if (year % 4 == 0) {
                if (year % 100 == 0) {
                    if (year % 400 == 0) 
                        sum_of_date++;
                }
                else sum_of_date++;
            }
        }

        for (int i = 1; i < month; i++) {
            if (i == 1 || i == 3 || i == 5 || i == 7 
                || i == 8 || i == 10 || i == 12)
                sum_of_date += 31;
            else if (i == 4 || i == 6 || i == 9 || i == 11)
                sum_of_date += 30;
            else if (i == 2)
                sum_of_date += 28;

            if (i == 2 && year % 4 == 0) {
                if (year % 100 == 0) {
                    if (year % 400 == 0) 
                        sum_of_date++;
                }
                else sum_of_date++;
            }
        }

        sum_of_date += day;

        string the_day;

        if (date[sum_of_date] == 2) 
            the_day = "Monday";
        else if (date[sum_of_date] == 3)
            the_day = "Tuesday";
        else if (date[sum_of_date] == 4) 
            the_day = "Wednesday";
        else if (date[sum_of_date] == 5)
            the_day = "Thursday";
        else if (date[sum_of_date] == 6) 
            the_day = "Friday";
        else if (date[sum_of_date] == 7)
            the_day = "Saturday";
        else if (date[sum_of_date] == 8) 
            the_day = "Sunday";

        return the_day;
    }
};
Leave a Comment