用c语言写一个计算自己活了多少天的代码

#include<stdio.h>

//初始化数组保存天数
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//普通年
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年

//判断闰年
int Leap(int year)
{
    if((year%4==0&&year%100!=0)||(year%400==0))
    {
        return 1;
    }
    return 0;
}   

//计算日期到年初的天数
int Day_Start(int year,int mon,int day)
{   
    int sum=0;
    if(Leap(year)==1)
    {
        for(int i=0;i<mon-1;i++)
        {
            sum+=b[i];
        }
        return sum+day;
    }
    else
    {
        for(int i=0;i<mon-1;i++)
        {
            sum+=a[i];
        }
        return sum+day;
    }
}

//计算日期到年末的天数
int Day_Over(int year,int mon,int day)
{
    int sum=0;
    if(Leap(year)==1)
    {
        for(int i=mon;i<12;i++)
        {
            sum+=b[i];
        }
        return sum+b[mon-1]-day;
    }
    else
    {
        for(int i=mon;i<12;i++)
        {
            sum+=a[i];
        }
        return sum+a[mon-1]-day;
    }
}

//计算中间的总年天数
int Day_Sum(int year_1,int year_2)
{
    int sum;
    for(int i=year_1+1;i<year_2;i++)
    {
        if(Leap(i)==1)
        {
            sum+=366;
        }
        else
        {
            sum+=365;
        }
    }
    return sum;
}

int main()
{
    int y_1,m_1,d_1;
    int y_2,m_2,d_2;
    scanf("%d%d%d",&y_1,&m_1,&d_1);
    scanf("%d%d%d",&y_2,&m_2,&d_2);
    int sum=0,a,b,c;
    if(y_1!=y_2)
    {
        a=Day_Start(y_2,m_2,d_2);
        b=Day_Over(y_1,m_1,d_1);
        c=Day_Sum(y_1,y_2);
        sum=a+b+c;
    }
    else
    {
        a=Day_Over(y_2,m_2,d_2);
        b=Day_Over(y_1,m_1,d_1);
        sum=b-a;
    }
    printf("%d\n",sum);
    return 0;
}
posted @   风恬月淡时  阅读(375)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
点击右上角即可分享
微信分享提示