❶ c语言 输入一个时间(年、月、日、时、分、秒),判断时间是否合法,输出下一秒的时间
#include<stdio.h>
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
int main()
{
void inputDate(); /*输入年-月-日 时:分:秒*/
void nextSceond(); /*计算下一秒的时间*/
int leapYear(int year); /*判断是否为闰年*/
int dayMonth(int month); /*返回每个月份对应的天数*/
inputDate();
leapYear(year);
dayMonth(month);
nextSceond();
system("PAUSE");
return 0;
}
/*函数inputDate()输入年-月-日 时:分:秒*/
void inputDate()
{
int loop;
for(loop = 0; loop < 3; loop++)
{
printf("请输入年-月-日 时:分:秒:");
scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
if(month < 1 || month > 12)
{
printf(" 月份输入错误! ");
continue;
}
else if(day < 1 || day > dayMonth(month))
{
printf(" 日期输入错误! ");
continue;
}
else if(hour < 0 || hour > 23)
{
printf(" 小时输入错误! ");
continue;
}
else if(minute < 0 || minute > 59)
{
printf(" 分钟输入错误! ");
continue;
}
else if(second < 0 || second > 59)
{
printf(" 秒数输入错误! ");
continue;
}
else
{
break;
}
}
}
/*函数nextSecond()计算下一秒的时间*/
void nextSceond()
{
if(59 == second)
{
minute += 1;
second = 0;
if(60 == minute)
{
hour += 1;
minute = 0;
if(24 == hour)
{
day += 1;
hour = 0;
if(day > dayMonth(month))
{
month += 1;
day = 1;
if(13 == month)
{
year += 1;
month = 1;
}
}
}
}
}
else
{
second += 1;
}
printf("%d-%d-%d %d:%d:%d ",year, month, day, hour, minute, second);
}
/*函数leapYear(int year)判断是否为闰年*/
int leapYear(int year)
{
if(0 == (year % 4 && 0 != year % 100) || 0 == year % 400)
{
return 1;
}
else
{
return 0;
}
}
/*函数名dayMonth(int month)返回每个月份对应的天数*/
int dayMonth(int month)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
if(0 == (year % 4 && 0 != year % 100) || 0 == year %400)
{
return 29;
}
else
{
return 28;
}
case 4:
case 6:
case 9:
case 11:
return 30;
}
}
请放心使用
有问题的话请追问
满意请及时采纳,谢谢
❷ 在C语言中获取到当前时间,然后与1900年比较,获取两个差,在转换为秒数,这个要怎么做
#include <stdio.h>
#include <time.h>
void main()
{
time_t lt;
lt = time(NULL);
printf("%ld\n",lt);
}
函数原型:time_t time(time_t * timer)
typedef long time_t;
time函数的原型也可以理解为 long time(long *tloc),即返回一个long型整数。
用法是你先自己定义一个time_t变量,回让后把变量的地答址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t*指向的变量里面。如果你传进来NULL(也就是0)的话,就不保存。
❸ c语言怎么求两个日期相差的秒数,日期格式20140325150630和20140324150000
#include <stdio.h>
#include <time.h>
int main(void)
{
struct tm time_cha;
time_t t1,t2;
long int d;
int year, month, day,hour,min,sec;
scanf("%4d%2d%2d%2d%2d%2d",&year,&month,&day,&hour,&min,&sec);
time_cha.tm_year = year - 1900; //tm结构记录年为实际-1900
time_cha.tm_mon = month - 1;
time_cha.tm_mday = day;
time_cha.tm_hour = hour;
time_cha.tm_min = min;
time_cha.tm_sec = sec;
t1 = mktime(&time_cha);//获得从1970年1月1日0时0分0秒以来过去的时间,秒
scanf("%4d%2d%2d%2d%2d%2d",&year,&month,&day,&hour,&min,&sec);
time_cha.tm_year = year - 1900; //tm结构记录年为实际-1900
time_cha.tm_mon = month - 1;
time_cha.tm_mday = day;
time_cha.tm_hour = hour;
time_cha.tm_min = min;
time_cha.tm_sec = sec;
t2 = mktime(&time_cha);
d=t1-t2;//经过的时间差(秒)
printf("%ld\n", d);
return 0;
}
❹ c语言怎么将一个年月日转换成秒数
用mktime()函数。
表头文件:#include <time.h>
定义函数:time_tmktime(structtm*timeptr);
函数说明:mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0秒算起至今的UTC时间所经过的秒数。
返回值:返回经过的秒数。
(4)c计算年限间秒数扩展阅读:
C语言参考函数
C语言isgraph()函数:判断一个字符是否是图形字符
C语言isdigit()函数:判断一个字符是否为数字
C语言iscntrl()函数:判断一个字符是否为控制字符
C语言isalpha()函数:判断一个字符是否是字母
C语言isalnum()函数:判断一个字符是否是字母或者数字
C语言pow()函数:求x的y次方的值
C语言frexp()函数:提取浮点数的尾数和指数部分
❺ C语言计算时间函数
标准库的time.h里有时间函数
time_t time (time_t *timer)
计算从1970年1月1日到当前系统时间,并把结果返回给timer变量,
函数本身返专回的也属是这个结果.time_t这个类型其实就是一个int.
另有:
double difftime ( time_t timer2, time_t timer1 )
把返回time2和time1所储存的时间的差.
❻ C语言计算两个时间之间的时间差,精确到秒。 现在我用的是time_t来计算的,但是我发现这个tim
第一个时间相对于1900-01-01 00:00:00是多少秒
第二个时间相对于1900-01-01 00:00:00是多少秒
再相减就OK
❼ C语言中如何计算时间差
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
unsigned char time1[] = {10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( &t1 );
_t2 = _mkgmtime( &t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分钟
", diff / 60 );
}
C语言中有两个相关的函数用来计算时间差,分别是:
time_t time( time_t *t) 与 clock_t clock(void)
头文件: time.h
计算的时间单位分别为: s , ms
time_t 和 clock_t 是函数库time.h 中定义的用来保存时间的数据结构
返回值:
1、time : 返回从公元1970年1月1号的UTC时间从0时0分0秒算起到现在所经过的秒数。如果参数 t 非空指针的话,返回的时间会保存在 t 所指向的内存。
2、clock:返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。 1单元 = 1 ms。
所以我们可以根据具体情况需求,判断采用哪一个函数。
具体用法如下例子:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //!< 单位为ms
t_start = time(NULL); //!< 单位为s
system("pause");
c_end = clock();
t_end = time(NULL);
//!<difftime(time_t, time_t)返回两个time_t变量间的时间间隔,即时间差
printf("The pause used %f ms by clock() ",difftime(c_end,c_start));
printf("The pause used %f s by time() ",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要计算某一函数块的占用时间时,只需要在执行该函数块之前和执行完该函数块之后调用同一个时间计算函数。再调用函数difftime()计算两者的差,即可得到耗费时间。
❽ C语言 统计秒数
题目意思不清晰,没没明白
❾ C语言计算时间
在C语言中计算时间,可以使用标准库中的计时函数——clock()。
函数原型:
clock_tclock(void);
其中clock_t是用来保存时间的数据类型,在time.h文件中,可以找到对它的定义:
#ifndef_CLOCK_T_DEFINED
typedeflongclock_t;
#define_CLOCK_T_DEFINED
#endif
很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:
#defineCLOCKS_PER_SEC((clock_t)1000)
可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:
voidelapsed_time()
{
printf("Elapsedtime:%usecs. ",clock()/CLOCKS_PER_SEC);
}
当然,也可以用clock函数来计算的机器运行一个循环或者处理其它事件到底花了多少时间:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}