OpenJudge计算概论-Tomorrow never knows【输入日期计算下一天的日期】

简介: /*====================================================================== Tomorrow never knows? 总时间限制: 1000ms 内存限制: 65536kB 描述 甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never knows?相信学了计概之后这个不会是难题,现在就来实现吧。
/*======================================================================
Tomorrow never knows?
总时间限制: 1000ms 内存限制: 65536kB
描述
甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never knows?相信学了计概之后这个不会是难题,现在就来实现吧。 
     读入一个格式为yyyy-mm-dd的日期(即年-月-日),输出这个日期下一天的日期。可以假定输入的日期不早于1600-01-01,也不晚于2999-12-30。

输入
输入仅一行,格式为yyyy-mm-dd的日期。
输出
输出也仅一行,格式为yyyy-mm-dd的日期
样例输入
2010-07-05
样例输出
2010-07-06
提示
闰年的标准:
(1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年) 
地球公转示意图
(2)世纪年能被400整除的是闰年。(如2000年是闰年,1100年不是闰年)

输入语句scanf("%d-%d-%d",&y,&m,&d)可以存储年,月,日.输出语句格式类似printf("%d-%02d-%02d\n",year,month,day).
========================================================================*/
#include<stdio.h>
int isRunNian(int year);
int main()
{
    int y,m,d;
    int year,month,day;
    int monthCarrySave=0;
    int yearCarrySave=0;
    scanf("%d-%d-%d",&y,&m,&d);
    if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
    {
        if(d==31)
        {
            day=1;
            monthCarrySave=1;
        }
        else day=d+1;
    }
    else 
    {
        if(m==2)
        {
            if(d==28)
            {
                if(isRunNian(y))  day=d+1;
                else
                {
                    day=1;
                    monthCarrySave=1;
                }
            }
            else if(d==29)
            {
                day=1;
                monthCarrySave=1;
            }
            else
            {
                day=d+1;
            }
        }
        else
        {
            if(d==30)
            {
                day=1;
                monthCarrySave=1;
            }
            else 
            {
                day=d+1;
            }
        }
    }
    month=m+monthCarrySave;
    if(month>12)
    {
        month=1;
        yearCarrySave=1;
    } 
    year=y+yearCarrySave;
    printf("%d-%02d-%02d\n",year,month,day);
    return 0;
}
int isRunNian(int year)
{
    if(year%4==0&&year%100!=0||year%400==0)
        return 1;
    else return 0;
}

 

相关文章
|
存储 JSON 安全
解锁互联网安全的新钥匙:JWT(JSON Web Token)
解锁互联网安全的新钥匙:JWT(JSON Web Token)
545 0
|
5月前
|
存储 算法 安全
如何控制上网行为——基于 C# 实现布隆过滤器算法的上网行为管控策略研究与实践解析
在数字化办公生态系统中,企业对员工网络行为的精细化管理已成为保障网络安全、提升组织效能的核心命题。如何在有效防范恶意网站访问、数据泄露风险的同时,避免过度管控对正常业务运作的负面影响,构成了企业网络安全领域的重要研究方向。在此背景下,数据结构与算法作为底层技术支撑,其重要性愈发凸显。本文将以布隆过滤器算法为研究对象,基于 C# 编程语言开展理论分析与工程实践,系统探讨该算法在企业上网行为管理中的应用范式。
145 8
|
10月前
|
敏捷开发
封装的优势
封装是面向对象编程的三大特性之一,通过隐藏对象的内部状态和实现细节,仅通过对象提供的方法进行交互。封装提高了代码的可读性、可维护性和安全性,降低了代码的复杂性。在敏捷开发和团队合作中,封装促进了快速迭代和分工合作,提高了开发效率。
195 0
|
6月前
|
人工智能 自然语言处理 安全
基于LlamaIndex实现CodeAct Agent:代码执行工作流的技术架构与原理
CodeAct是一种先进的AI辅助系统范式,深度融合自然语言处理与代码执行能力。通过自定义代码执行代理,开发者可精准控制代码生成、执行及管理流程。本文基于LlamaIndex框架构建CodeAct Agent,解析其技术架构,包括代码执行环境、工作流定义系统、提示工程机制和状态管理系统。同时探讨安全性考量及应用场景,如软件开发、数据科学和教育领域。未来发展方向涵盖更精细的代码生成、多语言支持及更强的安全隔离机制,推动AI辅助编程边界拓展。
281 3
基于LlamaIndex实现CodeAct Agent:代码执行工作流的技术架构与原理
|
7月前
|
JavaScript 前端开发 算法
vue渲染页面的原理
vue渲染页面的原理
231 56
|
7月前
|
NoSQL Java Redis
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 安装
本教程介绍在 VMware 虚拟机(CentOS 7)或阿里云服务器中安装 Redis 的过程,包括安装 gcc 编译环境、下载 Redis(官网或 wget)、解压安装、修改配置文件(如 bind、daemonize、requirepass 等设置)、启动 Redis 服务及测试客户端连接。通过 set 和 get 命令验证安装是否成功。适用于初学者快速上手 Redis 部署。
159 0
|
11月前
|
存储 JSON 安全
如何使用 JSON Web Tokens 进行身份验证?
总的来说,JWT 是一种强大而灵活的身份验证方式,通过正确使用和管理,可以为应用提供可靠的身份验证机制,同时提高系统的可扩展性和安全性。在实际应用中,需要根据具体的需求和场景,合理设计和实施 JWT 身份验证方案。
332 63
|
9月前
|
人工智能 数据可视化 数据处理
从0到1只需“拖一拖”,开发时间按秒算——低代码到底有多牛
低代码平台正颠覆传统软件开发模式,通过可视化开发、模块化组件和自动化工具,将复杂的开发过程大大简化。开发者只需拖拽组件并配置参数,即可快速构建应用,无需复杂编程。低代码平台支持实时预览、自动代码生成和快速部署,大幅提高开发效率,缩短开发周期,降低开发成本。它还提供丰富的插件生态,涵盖数据连接、报表图表、用户认证、流程审批等多种功能,满足多行业需求。低代码不仅简化了开发流程,更成为企业数字化转型的核心驱动力,推动智能开发体验,加速产品创新和市场响应速度。
161 13
|
存储 安全
详解初阶数据结构之顺序表(SeqList)——单文件实现SeqList的增删查改
详解初阶数据结构之顺序表(SeqList)——单文件实现SeqList的增删查改