C++ 三天打鱼两天晒网。C++

cpp 复制代码
#include<stdio.h>


int Month[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

int isLeap(int year) {
    return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}

int getDaysByM(int year,int month) {
    int days = Month[month];
    if (isLeap(year) && month == 2)
        days += 1;
    return days;
}
 

int main()
{
    int year, month, day;
    while (scanf("%d-%d-%d", &year, &month, &day) != EOF) {
        int days = 0;
        int y = 2000, m = 1, d = 1;
        while (1) {
            if (y == year && month == m && day == d)
                break;

            if (y < year) {
                y += 1;
                if (isLeap(y)) {
                    days += 366;                      
                }
                else {
                    days += 365;                       
                }
            }
            else {
                d += 1;
                days += 1;
                if (d > getDaysByM(y, m)) {
                    m += 1;
                    d = 1;
                    if (m > 12) {
                        m = 1;
                        y += 1;
                    }                              
                }
            }
            
        }
        int res = days % 5;
        if (res < 3) {
            puts("打鱼");
        }
        else {
            puts("晒网");
        }

    }
}
相关推荐
资深web全栈开发8 分钟前
LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理
算法·leetcode·职场和发展
better_liang18 分钟前
每日Java面试场景题知识点之-线程池配置与优化
java·性能优化·面试题·线程池·并发编程
q***25118 分钟前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
N***H48623 分钟前
使用Springboot实现MQTT通信
java·spring boot·后端
leoufung25 分钟前
链表题目讲解 —— 删除链表的倒数第 n 个节点(LeetCode 19)
数据结构·leetcode·链表
dragoooon3428 分钟前
[优选算法专题八.分治-归并 ——NO.46~48 归并排序 、数组中的逆序对、计算右侧小于当前元素的个数]
数据结构·算法·排序算法·分治
CoderYanger29 分钟前
优选算法-队列+宽搜(BFS):72.二叉树的最大宽度
java·开发语言·算法·leetcode·职场和发展·宽度优先·1024程序员节
招摇的一半月亮32 分钟前
P2242 公路维修问题
数据结构·c++·算法
JHC00000037 分钟前
交换链表中的节点
数据结构·链表