如何使用gettime()获取C中的当前时间?

如何使用gettime()获取C中的当前时间?,c,timestamp,gettime,C,Timestamp,Gettime,我们需要使用gettime()以C语言获取当前时间。我正在尝试打印当前时间,但出现错误: 错误:“t”的存储大小未知 发生。我不知道怎么解决这个问题。代码如下: #include<stdio.h> #include<dos.h> int main(){ struct time t; gettime(&t); printf("%d:%d:%d", t.ti_hour,t.ti_min,t.ti_sec); getch(); r

我们需要使用
gettime()
以C语言获取当前时间。我正在尝试打印当前时间,但出现错误:

错误:“t”的存储大小未知

发生。我不知道怎么解决这个问题。代码如下:

#include<stdio.h>
#include<dos.h>

int main(){

   struct time t;

   gettime(&t);

   printf("%d:%d:%d", t.ti_hour,t.ti_min,t.ti_sec);

   getch();
   return 0;
}
#包括
#包括
int main(){
结构时间t;
gettime&t;
printf(“%d:%d:%d”,t.ti_小时,t.ti_分钟,t.ti_秒);
getch();
返回0;
}

获取本地时间的标准C函数只是
时间
,包含在报头时间中。h

例子取自

/*时间示例*/
#包括/*printf*/
#包括/*time\u t、struct tm、difftime、time、mktime*/
int main()
{
时间计时器;
结构tm y2k={0};
双秒;
y2k.tm_小时=0;y2k.tm_分钟=0;y2k.tm_秒=0;
y2k.tm_year=100;y2k.tm_mon=0;y2k.tm_mday=1;
时间(&timer);/*获取当前时间;与:timer=time(NULL)相同*/
秒=difftime(计时器、mktime(&y2k));
printf(“自2000年1月1日起当前时区内的%.f秒”),秒);
返回0;
}
有关不同时间格式的更多信息:


获取本地时间的标准C函数只是
时间
,包含在报头时间中。h

例子取自

/*时间示例*/
#包括/*printf*/
#包括/*time\u t、struct tm、difftime、time、mktime*/
int main()
{
时间计时器;
结构tm y2k={0};
双秒;
y2k.tm_小时=0;y2k.tm_分钟=0;y2k.tm_秒=0;
y2k.tm_year=100;y2k.tm_mon=0;y2k.tm_mday=1;
时间(&timer);/*获取当前时间;与:timer=time(NULL)相同*/
秒=difftime(计时器、mktime(&y2k));
printf(“自2000年1月1日起当前时区内的%.f秒”),秒);
返回0;
}
有关不同时间格式的更多信息:


不清楚您是想获取时间,还是只是打印时间

对于第二种情况,提供格式化时间的传统方法很少(
asctime
ctime
)。但这些可能不适合你的需要

更灵活的选择是基于time/localtime\r中的数据使用
strftime
。strftime支持GNU date提供的许多转义(%Y…)

#include <stdio.h>
#include <time.h>

void main(void)
{

   time_t now = time(NULL) ;
   struct tm tm_now ;
   localtime_r(&now, &tm_now) ;
   char buff[100] ;
   strftime(buff, sizeof(buff), "%Y-%m-%d, time is %H:%M", &tm_now) ;
   printf("Time is '%s'\n", buff) ;
}
#包括
#包括
真空总管(真空)
{
time\u t now=时间(空);
struct tm_现在;
本地时间(现在和现在);
字符buff[100];
strftime(buff,sizeof(buff),%Y-%m-%d,时间为%H:%m“,&tm\u现在);
printf(“时间是“%s”\n”,buff);
}

不清楚您是想获取时间,还是只是打印时间

对于第二种情况,提供格式化时间的传统方法很少(
asctime
ctime
)。但这些可能不适合你的需要

更灵活的选择是基于time/localtime\r中的数据使用
strftime
。strftime支持GNU date提供的许多转义(%Y…)

#include <stdio.h>
#include <time.h>

void main(void)
{

   time_t now = time(NULL) ;
   struct tm tm_now ;
   localtime_r(&now, &tm_now) ;
   char buff[100] ;
   strftime(buff, sizeof(buff), "%Y-%m-%d, time is %H:%M", &tm_now) ;
   printf("Time is '%s'\n", buff) ;
}
#包括
#包括
真空总管(真空)
{
time\u t now=时间(空);
struct tm_现在;
本地时间(现在和现在);
字符buff[100];
strftime(buff,sizeof(buff),%Y-%m-%d,时间为%H:%m“,&tm\u现在);
printf(“时间是“%s”\n”,buff);
}

好的,您正在尝试使用DOS.H库,因此时间.H和ctime库不适用于此特定问题,因为DOS.H是一个专用的C库,您不能在任何其他C(C++或C#)中使用它,请在阅读本文后阅读该库,以便您清楚地了解我在说什么,因此,在DOS.H库中有一个用于保存所有时间变量的结构,即小时、分钟、秒,因此我们要做的第一件事是声明一个变量,该变量允许我们保存此类数据:

struct-time-tm

完成此操作后,您可以使用库中的gettime()函数将que值保存在可以访问以下内容的位置:

gettime&tm

最后,要在任何地方打印o do数据,需要获得结构的每个寄存器:

printf(“系统时间为:%d:%d:%d\n”,tm.ti_小时,tm.ti_分钟,tm.ti_秒)

检查此代码:

#include<stdio.h>
#include<dos.h>
#include<conio.h>

int main()
{
struct date fecha;
struct time hora;
union REGS regs;

getdate(&fecha);
printf("La fecha del sistema es: %d / %d / %d\n",fecha.da_day,fecha.da_mon,fecha.da_year);

regs.x.cx = 0x004c;
regs.x.dx = 0x4b40;
regs.h.ah = 0x86; /* 004c4b40h = 5000000 microsegundos */

int86(0x15,&regs,&regs); /* Interrupcion 15h suspension de sistema  */

gettime(&hora);
printf("la hora del sistema es: %d : %d : %d\n",hora.ti_hour,hora.ti_min,hora.ti_sec);

getche();
clrscr();
return 0;
}
#包括
#包括
#包括
int main()
{
结构日期fecha;
结构时间hora;
工会条例;
getdate(&fecha);
printf(“系统周期:%d/%d/%d\n”,周期日,周期日,周期年);
regs.x.cx=0x004c;
regs.x.dx=0x4b40;
regs.h.ah=0x86;/*004c4b40h=5000000微秒*/
int86(0x15,®s,®s);/*系统中断15小时*/
gettime(&hora);
printf(“系统时间:%d:%d:%d\n”,时间:小时,时间:分钟,时间:秒);
getche();
clrsc();
返回0;
}

好的,您正在尝试使用DOS.H库,因此时间.H和ctime库不适用于此特定问题,因为DOS.H是一个专用的C库,您不能在任何其他C(C++或C#)中使用它,请在阅读本文后阅读该库,以便您清楚地了解我在说什么,因此,在DOS.H库中有一个用于保存所有时间变量的结构,即小时、分钟、秒,因此我们要做的第一件事是声明一个变量,该变量允许我们保存此类数据:

struct-time-tm

完成此操作后,您可以使用库中的gettime()函数将que值保存在可以访问以下内容的位置:

gettime&tm

最后,要在任何地方打印o do数据,需要获得结构的每个寄存器:

printf(“系统时间为:%d:%d:%d\n”,tm.ti_小时,tm.ti_分钟,tm.ti_秒)

检查此代码:

#include<stdio.h>
#include<dos.h>
#include<conio.h>

int main()
{
struct date fecha;
struct time hora;
union REGS regs;

getdate(&fecha);
printf("La fecha del sistema es: %d / %d / %d\n",fecha.da_day,fecha.da_mon,fecha.da_year);

regs.x.cx = 0x004c;
regs.x.dx = 0x4b40;
regs.h.ah = 0x86; /* 004c4b40h = 5000000 microsegundos */

int86(0x15,&regs,&regs); /* Interrupcion 15h suspension de sistema  */

gettime(&hora);
printf("la hora del sistema es: %d : %d : %d\n",hora.ti_hour,hora.ti_min,hora.ti_sec);

getche();
clrscr();
return 0;
}
#包括
#包括
#包括
int main()
{
结构日期fecha;
结构时间hora;
工会条例;
getdate(&fecha);
printf(“系统周期:%d/%d/%d\n”,周期日,周期日,周期年);
regs.x.cx=0x004c;
regs.x.dx=0x4b40;
重新