获取自然日之差

/*
获取自然日之差
mktime()用来将tm转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数
*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int main()
{
	char cdateX[9]	= "20150406";
	char cdateY[9]	= "20150404";
	long int ldays   = 0;
	int idateX = atoi(cdateX);
	int iyearX = idateX/10000;
	int imonX  = idateX/100 - iyearX*100;
	int idayX  = idateX - idateX/100*100;

	int idateY = atoi(cdateY);
	int iyearY = idateY/10000;
	int imonY  = idateY/100 - iyearY*100;
	int idayY  = idateY - idateY/100*100;
	
	struct tm tx;			//struct tm是在标准库中就定义好的结构体
	struct tm ty;

	time_t daysx;  
	time_t daysy;

	tx.tm_year	=	iyearX - 1900;	//年 以1900年为基线
	tx.tm_mon	=	imonX;			//月
	tx.tm_mday	=	idayX;			//日
	tx.tm_hour	=	0;				//时
	tx.tm_min	=	0;				//分
	tx.tm_sec	=	0;				//秒
	tx.tm_isdst	=	0;				//夏令时
	daysx = mktime(&tx);

	ty.tm_year	=	iyearY - 1900;	//年 以1900年为基线
	ty.tm_mon	=	imonY;			//月
	ty.tm_mday	=	idayY;			//日
	ty.tm_hour	=	0;				//时
	ty.tm_min	=	0;				//分
	ty.tm_sec	=	0;				//秒
	ty.tm_isdst	=	0;				//夏令时
	daysy = mktime(&ty);


	ldays  = (daysx - daysy)/(60*60*24);
	printf("%d %d %d \n",iyearY,imonY,idayY);
	printf("%d %d %d \n",iyearX,imonX,idayX);
	printf("%s 与 %s 相差%ld 天 \n",cdateX,cdateY,ldays);

	getchar();
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值