Discuz! Board

 找回密码
 立即注册
查看: 289|回复: 1

日期计算

[复制链接]

49

主题

70

帖子

23万

积分

论坛元老

Rank: 8Rank: 8

积分
232976

大王燕 Lv:51
发表于 2023-3-2 19:32:36 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int a;
int main()
{
	cin>>a;
	for(int i=0;i<12;i++)
	{
		if(a>month[i])
		{
			a-=month[i];
		}
		else
		{
			cout<<i+1<<"月"<<a<<"日";
			break;
		}
	}
}

回复

使用道具 举报

49

主题

70

帖子

23万

积分

论坛元老

Rank: 8Rank: 8

积分
232976

大王燕 Lv:51
 楼主| 发表于 2023-3-2 19:32:54 | 显示全部楼层
[C++] 纯文本查看 复制代码
bool runnian(int t)//闰年判断 
{
    if (((t%4 == 0)&&(t%100 != 0)) || (t%400 == 0))
    {
        return true;
    }
    return false;
}

void shuiguotou()//睡过头 日期间隔计算
{
	int y1,m1,d1,y2,m2,d2;
	int n1=0,n2=0,n3=0,y1t,y2t;
	cin>>y1>>m1>>d1>>y2>>m2>>d2;
	
	int mon[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
              	  	31,29,31,30,31,30,31,31,30,31,30,31}; //平年和闰年的月份天数 
    
    if(runnian(y1))	y1t=1;
	else y1t=0;
    if(runnian(y2))	y2t=1;
	else y2t=0;
    
    for(int i=1;i<=12;i++)
    {
    	if(i==m1)
		{
			n1+=d1;
			break;
		}
    	else n1+=mon[y1t][i-1];
	}
	
	for(int i=1;i<=12;i++)
    {
    	if(i==m2)
    	{
			n2+=d2;
			break;
		}
    	else n2+=mon[y2t][i-1];
	}
	
	for(int i=y1;i<y2;i++)
	{
		if(runnian(i)) n3+=366;
		else n3+=365;
	}

	cout<<n3+n2-n1;
} 
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 02:01 , Processed in 0.051393 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表