力扣1185

我的答案:(变量名随便起的,不规范)

class Solution {
public:
    string dayOfTheWeek(int day, int month, int year) {
        std::string site[7] = {"Monday", "Tuesday",  "Wednesday", "Thursday",
                               "Friday", "Saturday", "Sunday"};
        int year2 = 1971, year1 = 0;
        int num = 5, cishu = 0, result = 0,xunhuan = 0,i = 0, res, ress;
        year1 = year;
        xunhuan = year - year2;
        while (xunhuan >= 1) {
            ++year2;

            if (year < 1971 || year > 2100) {
                return 0;
            }
            if (((year2 - 1) % 4 == 0 && (year2 - 1) % 100 != 0) ||
                (year2 - 1) % 400 == 0) {
                res = (num + 366) / 7;
                ress = (num + 366) - res * 7;
                if (ress == 0) {
                    num = num + 2;
                } else {
                    num = ress;
                }
            } else {
                res = (num + 365) / 7;
                ress = (num + 365) - res * 7;
                if (ress == 0) {
                    num = num + 1;
                } else {
                    num = ress;
                }
            }

            xunhuan = year - year2;
        }
        //一年有12个月,其中1月、3月、5月、7月、8月、10月、12月每个月都有31天
        //4月、6月、9月、11月每个月都有30天  120,2月份平年有28天,闺年有29天 
        if ((year1 % 4 == 0 && year1 % 100 != 0) || year1 % 400 == 0) {
            i = 29;
        } else {
            i = 28;
        }
        switch (month) {
        case 1:
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            }  else if (day == 1) {
                num = num;
            }
            break;
        case 2:
            day = day + 31;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            }  else if (day == 1) {
                num = num;
            }
            break; // 可选的
        case 3:
            day = day + 31 + i;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            } else if (day == 1) {
                num = num;
            }
            break;
        case 4:
            day = day + 31 + i + 31;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            } else if (day == 1) {
                num = num;
            }
            break;
        case 5:
            day = day + 31 + i + 31 + 30;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            }

           else if (day == 1) {
                num = num;
            }
            break;
        case 6:
            day = day + 31 + i + 31 + 30 + 31;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            }  else if (day == 1) {
                num = num;
            }
            break;
        case 7:
            day = day + 31 + i + 31 + 30 + 31 + 30;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            }  else if (day == 1) {
                num = num;
            }
            break;
        case 8:
            day = day + 31 + i + 31 + 30 + 31 + 30 + 31;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            } else if (day == 1) {
                num = num;
            }
            break;
        case 9:
            day = day + 31 + i + 31 + 30 + 31 + 30 + 31 + 31;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            } else if (day == 1) {
                num = num;
            }
            break;
        case 10:
            day = day + 31 + i + 31 + 30 + 31 + 30 + 31 + 31 + 30;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            } else if (day == 1) {
                num = num;
            }
            break;
        case 11:
            day = day + 31 + i + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            }  else if (day == 1) {
                num = num;
            }
            break;
        case 12:
            day = day + 31 + i + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
            cishu = day / 7;
            result = (day) - (cishu * 7) - 1;
            num = num + result;
            if (num >= 8) {
                num = num - 7;
            } else if (day == 1) {
                num = num;
            }
            break;
        }

        switch (num) {
        case 1:
            return site[0];
            break;
        case 2:
            return site[1];
            break;
        case 3:
            return site[2];
            break;
        case 4:
            return site[3];
            break;
        case 5:
            return site[4];
            break;
        case 6:
            return site[5];
            break;
        case 7:
            return site[6];
            break;
        }
        return site[6];
    }
};

 

posted @ 2023-12-29 15:55  joyfulest  阅读(2)  评论(0编辑  收藏  举报