标题:2015年1月9日 到 2015年1月8日 之间相差1天,请问是如何计算出来的
只看楼主
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
结帖率:99.76%
已结贴  问题点数:100 回复次数:5 
2015年1月9日 到 2015年1月8日 之间相差1天,请问是如何计算出来的
为什么我的代码计算出来 是相差31天呢

程序代码:
#include <stdio.h>
#include <time.h>

int main (void)
{
    struct tm ptr;
    ptr.tm_sec=50;
    ptr.tm_min=10;
    ptr.tm_hour=10;
    ptr.tm_mday=9;
    ptr.tm_mon=1;
    ptr.tm_year=2015-1900;   //2015年1月9日10时10分50秒
    time_t st=mktime(&ptr);
    time_t lt=time(NULL);
    printf("秒差:%d\n",st-lt);
    printf("时差:%d\n",(int)((st-lt)/3600));
    printf("日差:%d\n",(int)((st-lt)/3600/24));
    return 0;
}
搜索更多相关主题的帖子: color 如何 
2015-01-08 15:59
圈圈ing
Rank: 2
等 级:论坛游民
帖 子:12
专家分:45
注 册:2015-1-4
得分:25 
真心看不懂
2015-01-08 16:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:25 
ptr.tm_mon=1;
应该是 ptr.tm_mon = 0;

int tm_mon;     /* months since January - [0,11] */
2015-01-08 16:32
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:25 
一直都不知道设计这个结构体的人是如何想的,其他的字段都是从0开始的,就日期这个字段是从1开始的。好几次我就把这个字段弄错。
2015-01-08 16:43
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:25 
学习代码 顺便拿分 HEHE

Only the Code Tells the Truth             K.I.S.S
2015-01-08 22:39
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
谢谢r版,问题应该解决,顺便贴一个计算2个日期的天数差的函数  希望能帮到大家

程序代码:
#include <stdio.h>
#include <time.h>

int datediff(int y1,int m1,int d1,int y2,int m2,int d2)
{
    struct tm ptr1;
    ptr1.tm_sec=10;
    ptr1.tm_min=10;
    ptr1.tm_hour=10;
    ptr1.tm_mday=d1;
    ptr1.tm_mon=m1-1;
    ptr1.tm_year=y1-1900;   
    time_t st1=mktime(&ptr1);
    struct tm ptr2;
    ptr2.tm_sec=10;
    ptr2.tm_min=10;
    ptr2.tm_hour=10;
    ptr2.tm_mday=d2;
    ptr2.tm_mon=m2-1;
    ptr2.tm_year=y2-1900;   
    time_t st2=mktime(&ptr2);
    return (int)((st2-st1)/3600/24);
}

int main (void)
{
    int t=datediff(2015,1,9,2015,2,18);
    printf("%d",t);
    return 0;
}


DO IT YOURSELF !
2015-01-09 09:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440869-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.101178 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved