计算两个日期的天数, 日期加减天数得到日期(已测试无问题) 纯C语言 不要引出任何头文件。

这个博客提供了一组C语言函数,用于计算两个日期之间的天数差,并实现加减天数得到新的日期。函数包括:day_diff计算天数差,getDateAdd和getDateSub分别用于日期加减。博客中包含详细的结构体定义、日期处理逻辑以及平闰年的判断。
摘要由CSDN通过智能技术生成


typedef struct {
    int year;
    int mon;
    long day;
//    int hour;
//    int min;
//    int sec;
} mathdate, *mathdateptr;

//计算两上日期的天数 例如: day_diff(2015, 1, 1, 2015, 1, 8)


int day_diff(int year_start, int month_start, int day_start, int year_end,
        int month_end, int day_end) {
    
 
            
    int y2, m2, d2;
    int y1, m1, d1;
            
            
    m1 = (month_start + 9) % 12;
    y1 = year_start - m1 / 10;
    d1 = 365 * y1 + y1 / 4 - y1 / 100 + y1 / 400 + (m1 * 306 + 5) / 10
            + (day_start - 1);

    m2 = (month_end + 9) % 12;
    y2 = year_end - m2 / 10;
    d2 = 365 * y2 + y2 / 4 - y2 / 100 + y2 / 400 + (m2 * 306 + 5) / 10
            + (day_end - 1);

    return (d2 - d1);
}

int normalMonthDays[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

//判断平年、闰年。

char leapYear(int year) {   //leap year judgement
    //if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
        if(year%4==0&&year%100!=0||year%400==0)
        return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值