算法入门(C#):输入日期得到下一天的日期

embedded/2024/10/18 19:11:55/

#include<stdio.h>
int main() {
    int n, y, r;//n:年, y:月, r:日
    scanf("%d%d%d", &n, &y, &r);
    if (n > 0 && y > 0 && y < 13 && r>0) {//检查输入的日期是否合法
            // 处理2月的情况
            if (y == 2) {
                if ((n % 4 == 0 && (n % 100 != 0 || n % 400 == 0))) { // 闰年
                    if (r < 29) {
                        r++;
                    }
                    else if (r == 29) {
                        r = 1; // 2月29日后变为1号
                        y++;  // 变为3月
                    }
                    else {
                        printf("日期不存在\n");
                        return 0; // 结束程序
                    }
                }
                else { // 非闰年
                    if (r < 28) {
                        r++;
                    }
                    else if (r == 28) {
                        r = 1; // 2月28日后变为1号
                        y++; // 变为3月
                    }
                    else {
                        printf("日期不存在\n");
                        return 0; // 结束程序
                    }
                }
            }
    
        else if (y == 1 || 3 || 5 || 7 || 8 || 10) {//处理大月的情况
            if (r < 31) { r++; }
            else if (r == 31) { y++; r = 1;}
            else printf("日期不存在");
        }
        else if (y == 12) {//由于12月存在年的进位问题,我单独拿出来讨论 
            if (r < 31) { r++;}//一定要用else if呀 
            else if (r == 31) { n++; y = 1; r = 1; }
            else printf("日期不存在");
        }
        else  {//处理小月的情况
            if (r < 31) { r++; }
            else if (r == 31) { y++; r = 1;}
            else printf("日期不存在");
        }
        printf("%d年%d月%d日", n, y, r);
    }
    else printf("日期不存在");
    return 0;
}

十分考验选择语句的功底


http://www.ppmy.cn/embedded/123676.html

相关文章

Streamlit 实现登录注册验证

在开发基于 Streamlit 的应用时&#xff0c;用户认证功能是一个常见需求。本文将介绍如何通过两种方式来实现登录注册功能&#xff1a;手动实现 和 使用 Streamlit-Authenticator 库。手动实现虽然灵活&#xff0c;但需要自行处理密码加密、验证等细节&#xff1b;而 Streamlit…

iTextPDF中,要实现表格中的内容在数据长度超过边框时自动换行

在iTextPDF中&#xff0c;要实现表格中的内容在数据长度超过边框时自动换行&#xff0c;你可以使用Phrase对象并设置其HyphenationEvent&#xff0c;或者使用Chunk对象并设置其setSplitCharacter方法。以下是一些方法来实现这一功能&#xff1a; 1. 使用Phrase对象&#xff1a…

贴吧软件怎么切换ip

在网络使用中&#xff0c;有时我们需要切换IP地址来满足特定的需求&#xff0c;比如需要切换贴吧软件IP以进行不同的操作。本文将介绍几种贴吧切换IP地址的方法&#xff0c;帮助用户更好地管理自己的网络身份和访问权限。 1、更换网络环境‌ 通过连接到不同的Wi-Fi网络或使用移…

数据结构(7.4_1)——B树

B树的定义 m阶B树的核心特性&#xff1a; B树的高度 最小高度 最大高度 总结&#xff1a;

高点摄像山火烟雾检测数据集 共2890张图像,分辨率1920×1080,标注采用json格式,标注了每个烟雾的位置,烟雾浓度等级(低,中,高),共1.1GB

高点摄像山火烟雾检测数据集&#xff08;并按照低、中详细标注烟雾浓度&#xff09;。主要针对初期山火&#xff0c;任何野火检测系统的最重要目标是在火势扩大之前及时检测到火灾。在初期阶段&#xff0c;野火由非火焰性的燃烧烟雾组成&#xff0c;热量相对较低。在这个阶段识…

(11)MATLAB莱斯(Rician)衰落信道仿真2

文章目录 前言一、莱斯衰落信道仿真模型二、仿真代码与结果1.仿真代码2.仿真结果画图 三、后续&#xff1a;四、参考文献&#xff1a; 前言 首先给出莱斯衰落信道仿真模型&#xff0c;该模型由直射路径分量和反射路径分量组成&#xff0c;其中反射路径分量由瑞利衰落信道模型构…

pnpm依赖安装失败解决|pnpm项目从一个文件夹复制到另一个文件夹运行失败问题解决-以vbenAdmin项目为例

1 前言 最近在使用vben admin项目迁移时&#xff0c;从一个文件夹复制到另一个文件夹运行不起来&#xff0c;排查了一天&#xff0c;终于把问题排查出来了&#xff0c;特地记录一下&#xff0c;便于自己看也便于大家看。 使用项目安装包版本&#xff1a; v2.11.5 https://gi…

Ray_Tracing_The_Next_Week下

5image Texture Mapping 图像纹理映射 我们之前虽然在交点信息新增了uv属性&#xff0c;但其实并没有使用&#xff0c;而是通过p交点笛卡尔坐标确定瓷砖纹理或者大理石噪声纹理的值 现在通过uv坐标读取图片&#xff0c;通过std_image库stbi_load&#xff08;path&#xff09;…