【日期】计算后续日期

【日期】计算后续日期

我们经常要计算,从今天往后N天之后是哪一天(哪年哪月哪日)。现在我们就可以编写一个程序,推算指定日期之后的第N天是什么日期。

输入:
年 月 日
N

输出:
(年月日+N天后的)年.月.日
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int y,m,d,k=0,i,j,l,n,r;
	scanf("%d %d %d",&y,&m,&d);
	int x,p;
	scanf("%d",&x);
	switch(m)
    {  
        case 1:k=d;break;  
        case 2:k=31+d;break;  
        case 3:k=31+28+d;break;  
        case 4:k=31+28+31+d;break;  
        case 5:k=31+28+31+30+d;break;  
        case 6:k=31+28+31+30+31+d;break;  
        case 7:k=31+28+31+30+31+30+d;break;  
        case 8:k=31+28+31+30+31+30+31+d;break;  
        case 9:k=31+28+31+30+31+30+31+31+d;break;  
        case 10:k=31+28+31+30+31+30+31+31+30+d;break;  
        case 11:k=31+28+31+30+31+30+31+31+30+31+d;break;  
        case 12:k=31+28+31+30+31+30+31+31+30+31+30+d;break;  
    }  
        i=(y-1)/4;  
        j=(y-1)/400;  
        l=(y-1)/100;  
        n=(y-1)%4;  
   		r=(365+365+365+366)*i+n*365+k-l+j;  
        if(y%400==0&&m>2)    
        p=r+x+1;            
        else if(y%4==0&&m>2&&y%100!=0)   
        p=r+x+1;           
        else  
        p=r+x;
		int oneb,fourb;
		oneb=p/((365*3+366)*25);
		fourb=p/(((365*3+366)*25)*4);
		int p1;
		p1=p+oneb-fourb;
		int y1,m1,d1,y2,y3;
		y1=p1/(366+365*3);
		y2=(p1-y1*(366+365*3))/365;
		y3=4*y1+y2+1;
		d1=p1-y1*(366+365*3)-y2*365;
		if(d1<=31)
		m1=1;
		else if(d1<=31+28)
		m1=2;
		else if(d1<=31+28+31)
		m1=3;
		else if(d1<=31+28+31+30)
		m1=4;
		else if(d1<=31+28+31+30+31)
		m1=5;
		else if(d1<=31+28+31+30+31+30)
		m1=6;
		else if(d1<=31+28+31+30+31+30+31)
		m1=7;
		else if(d1<=31+28+31+30+31+30+31+31)
		m1=8;
		else if(d1<=31+28+31+30+31+30+31+31+30)
		m1=9;
		else if(d1<=31+28+31+30+31+30+31+31+30+31)
		m1=10;
		else if(d1<=31+28+31+30+31+30+31+31+30+31+31)
		m1=11;
		else
		m1=12;
		int d2=0;
		switch(m1)  
    {  
        case 1:d2=d1;break;  
        case 2:d2=d1-31;break;  
        case 3:d2=d1-(31+28);break;  
        case 4:d2=d1-(31+28+31);break;  
        case 5:d2=d1-(31+28+31+30);break;  
        case 6:d2=d1-(31+28+31+30+31);break;  
        case 7:d2=d1-(31+28+31+30+31+30);break;  
        case 8:d2=d1-(31+28+31+30+31+30+31);break;  
        case 9:d2=d1-(31+28+31+30+31+30+31+31);break;  
        case 10:d2=d1-(31+28+31+30+31+30+31+31+30);break;  
        case 11:d2=d1-(31+28+31+30+31+30+31+31+30+31);break;  
        case 12:d2=d1-(31+28+31+30+31+30+31+31+30+31+30);break;  
    }  
    if(y3%4==0&&y3%100!=0&&m1>2)
    {
		d2=d2-1;	
	}
	if(y3%400==0&&m1>2)
	{
		d2=d2-1;
	}
	if(m1==1&&d2==0)
	{
		m1=12;
		d2=31;
		y3=y3-1;
	}
	if(y3%4==0&&y3%100!=0&&m1==3&&d2==0)
	{
		m1=2;
		d2=29;
	}
	if(y3%400==0&&m1==3&&d2==0)
	{
		m1=2;
		d2=29;
	}
	printf("%d.%d.%d\n",y3,m1,d2);
	return 0;
}
03-08
### MathPix工具介绍 Mathpix Snipping Tool 是一款强大的数学公式识别工具,从最初的原型发展至今已经历了多次迭代和功能增强[^1]。该工具不仅能处理简单的数学表达式,还可以应对复杂的数学模型以及多行公式,并且支持手写公式的识别。 这款应用程序通过不断的科技创新与用户反馈改进,在学术研究和技术领域赢得了良好声誉,成为许多科研人员不可或缺的工作伙伴之一。除了基本的功能外,Mathpix 还提供了多种高级特性来满足不同用户的特定需求。 ### 使用方法 #### 安装与启动 为了使用 Mathpix Snipping Tool ,首先需要下载安装程序并按照提示完成设置过程。一旦成功安装后即可随时调用此应用来进行截图操作。 #### 截取屏幕上的公式图像 当遇到想要转换成 LaTeX 或 AsciiMath 的图片时,只需打开软件界面按下快捷键(默认为 `Ctrl+Alt+M`),此时鼠标指针会变为十字形状以便于选取目标区域;框选所需部分之后松开按键即刻上传至云端服务器等待进一步分析处理。 #### 获取LaTeX代码片段 经过短暂几秒钟的时间延迟过后,所截获的内容将以纯文本形式显示出来供复制粘贴到其他编辑器当中继续编写文档或是分享给他人查看交流之用。 ```python import pyperclip # 假设已获取到LaTeX字符串 stored_in_variable named latex_code pyperclip.copy(latex_code) print("LaTeX code has been copied to clipboard.") ``` 对于希望深入探索更多可能性的用户来说,可以考虑查阅官方提供的扩展插件——如用于解析Markdown文件内的公式标记语法的库 **mathpix-markdown-it** [^2] ——这将进一步提升工作效率和个人体验感。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值