C语言中计算2个时间的差值的函数
我想要的是一个封装好的函数,大概形式intday(char*date1,char*date2){我想要的内容returnday;}我会传递2个格式为char型的数组a[1...
我想要的是一个封装好的函数,大概形式
int day(char *date1,char *date2){
我想要的内容
return day;
}
我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名字给该函数,
希望计算前者与后者的时间差值,精确到天就可以,希望包含闰年判断,
附闰年判断条件:该年份可以被4且100整除或者可以被400整除。
希望帮忙写出该函数, 展开
int day(char *date1,char *date2){
我想要的内容
return day;
}
我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名字给该函数,
希望计算前者与后者的时间差值,精确到天就可以,希望包含闰年判断,
附闰年判断条件:该年份可以被4且100整除或者可以被400整除。
希望帮忙写出该函数, 展开
2个回答
展开全部
#include <time.h>
#include <stdio.h>
time_t _mktime( char *slTime ) /** yyyy-mm-dd **/
{
struct tm tm_t;
int year;
int mon;
int day;
sscanf( slTime, "%4d-%2d-%2d", &year, &mon, &day );
tm_t.tm_year = year - 1900;
tm_t.tm_mon = mon - 1;
tm_t.tm_mday = day;
tm_t.tm_hour = 12;
tm_t.tm_min = 00;
tm_t.tm_sec = 01;
tm_t.tm_wday = 0;
tm_t.tm_yday = 0;
tm_t.tm_isdst = 0;
return mktime( &tm_t );
}
int daydiff( char *date1, char *date2 ) /** yyyy-mm-dd **/
{
time_t t1 = _mktime( date1 );
time_t t2 = _mktime( date2 );
time_t diff = abs( t2 - t1 );
return (int)( diff / (24*60*60) );
}
int main()
{
char date1[12], date2[12];
printf( "input date1: " );
scanf( "%s", date1 );
fflush( stdin );
printf( "input date2: " );
scanf( "%s", date2 );
fflush( stdin );
printf( "%s - %s is %d days\n", date1, date2, daydiff(date1, date2) );
}
展开全部
#include <stdio.h>
#include <time.h>
void main ()
{
time_t T;
struct tm * timenow;
time ( &T );
timenow = localtime ( &T );
printf ( "现在时间是: %s", asctime (timenow) );
}
程序2:
/*****本程序由Microsoft Visual C++ 6.0运行通过*****/
#include<stdio.h>
#include<time.h>
void main()
{
char time[128];
_tzset();
_strtime(time);
printf("time:\t%s\n", time);
_strdate(time);
printf("date:\t%s\n",time);
}
程序3:
#include <stdio.h>
#include <time.h>
int main()
{
time_t ltime;
char tmpbuf[128];
time(<ime);
printf(ctime(<ime) );
return 0;
}
程序4:
#include<stdio.h>
#include <time.h>
int main()
{
time_t t = time(0);
char tmp[64];
strftime(tmp,sizeof(tmp),"%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t));
puts(tmp);
return 0;
}
#include <time.h>
void main ()
{
time_t T;
struct tm * timenow;
time ( &T );
timenow = localtime ( &T );
printf ( "现在时间是: %s", asctime (timenow) );
}
程序2:
/*****本程序由Microsoft Visual C++ 6.0运行通过*****/
#include<stdio.h>
#include<time.h>
void main()
{
char time[128];
_tzset();
_strtime(time);
printf("time:\t%s\n", time);
_strdate(time);
printf("date:\t%s\n",time);
}
程序3:
#include <stdio.h>
#include <time.h>
int main()
{
time_t ltime;
char tmpbuf[128];
time(<ime);
printf(ctime(<ime) );
return 0;
}
程序4:
#include<stdio.h>
#include <time.h>
int main()
{
time_t t = time(0);
char tmp[64];
strftime(tmp,sizeof(tmp),"%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t));
puts(tmp);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询