题解 | #Day of Week#

Day of Week

https://www.nowcoder.com/practice/a3417270d1c0421587a60b93cdacbca0

#include <cstdio>
#include <iostream>
#include<string>
#include<map>
using namespace std;
//这题真的挺费事的
//我自己随便找了一个久远的星期一的一天,然后计算两个日期之间的天数差即可
int solve(int year, int month, int day, int year2, int month2, int day2) {
    int data[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if ((year % 100 != 0 && year % 4 == 0) || year % 400 == 0) data[2] = 29;
    int res = 0;
    int i = 0;
    res -= day;
    while (year != year2) {
        for (i = month; i <= 12; i++) {
            res += data[i];
        }
        if (year != year2) {
            month = 1;
            year += 1;
            //在改变年份的时候记得修改2月的日期!!!!!
            if ((year % 100 != 0 && year % 4 == 0) ||
                    year % 400 == 0)          data[2] = 29;
            else data[2] = 28;
        }

    }
    if (year == year2) {

        while (month < month2) {
            res += data[month];
            month++;
        }
        res += (day2 + 1);

    }
    return res;


    // printf("%d-%02d-%02d\n", year, i, addDay);

}

int main() {
    int num1, num2;
    map<string, int> m;
    map<int, string> week;

    m["January"] = 1;
    m["February"] = 2;
    m["March"] = 3;
    m["April"] = 4;
    m["May"] = 5;
    m["June"] = 6;
    m["July"] = 7;
    m["August"] = 8;
    m["September"] = 9;
    m["October"] = 10;
    m["November"] = 11;
    m["December"] = 12;
    week[1] = "Monday";
    week[2] = "Tuesday";
    week[3] = "Wednesday";
    week[4] = "Thursday";
    week[5] = "Friday";
    week[6] = "Saturday";
    week[0] = "Sunday";//星期天尤其记得是0序号
    int day, year;
    string month;
    while (cin >> day >> month >> year) {
        int m1 = m[month];
        int days = solve( 1969, 12, 29, year, m1, day);
        days %= 7;
        cout << week[days] << endl;

    }


}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务