time(NULL)与GetLocalTime获取当前时间

到#inlcude  <time.h>头文件里的一个time()函数和localtime()函数 
   
  函数原型:  time_t  time(time_t  *timer)     
  函数用途:  得到机器的日历时间或者设置日历时间     
  头  文  件:  time.h   
  输入参数:  timer:=NULL时,得到机器日历时间,=时间数值时  用于设置日历时间; 
   
  time_t是一个long类型 
   
  函数原型:  struct  tm  *localtime(const  time_t  *timer)   
  函数用途:  返回一个以tm结构表达的机器时间信息   
  头  文  件:  time.h   
  输入参数:  timer:使用time()函数获得的机器时间; 
   
  结构tm的定义为: 
  struct  tm 
  { 
  int tm_sec; /*  Seconds:  0-59  (K&R  says  0-61?)  */ 
  int tm_min; /*  Minutes:  0-59  */ 
  int tm_hour; /*  Hours  since  midnight:  0-23  */ 
  int tm_mday; /*  Day  of  the  month:  1-31  */ 
  int tm_mon; /*  Months  *since*  january:  0-11  */ 
  int tm_year; /*  Years  since  1900  */ 
  int tm_wday; /*  Days  since  Sunday  (0-6)  */ 
  int tm_yday; /*  Days  since  Jan.  1:  0-365  */ 
  int tm_isdst; /*  +1  Daylight  Savings  Time,  0  No  DST, 
    *  -1  don't  know  */ 
  }; 


举个例子:
#include "stdafx.h"
#include  <time.h> 
#include  <stdio.h> 
#include <wtypes.h>

int main(int argc, char* argv[])
{
 time_t  t; 
 tm  *tp; 
 
 t=time(NULL); 
//  既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)
//  到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,
//  它所表示的时间不能晚于2038年1月18日19时14分07秒。为了能够表示更久远的时间,一些编译器厂商
//  引入了64位甚至更长的整形数来保存日历时间。比如微软在Visual C++中采用了__time64_t数据类型来
//  保存日历时间,并通过_time64()函数来获得日历时间(而不是通过使用32位字的time()函数),这样
//  就可以通过该数据类型保存3001年1月1日0时0分0秒(不包括该时间点)之前的时间。

 tp=localtime(&t); 
 printf("%d/%d/%d/n",tp->tm_mon+1,tp->tm_mday,tp->tm_year+1900); 
 printf("%d:%d:%d/n",tp->tm_hour,tp->tm_min,tp->tm_sec);
 
 SYSTEMTIME stCurTime = {0};
 ::GetLocalTime(&stCurTime);

// 注意区分GetSystemTime(&stCurTime);的区别
 printf("%d/%d/%d/n",stCurTime.wMonth,stCurTime.wDay,stCurTime.wYear); 
 printf("%d:%d:%d/n",stCurTime.wHour,stCurTime.wMinute,stCurTime.wSecond);
 return 0;
}

### 回答1: CODESYS是一个可编程的自动化控制系统软件,可以用于编程控制、监控、数据处理与通讯等。获取当前时间是在代码编程时很重要的一个功能,以便进行事件计时和记录。 CODESYS提供了获取当前系统时间的函数,可以在程序中调用。常用的获取时间函数为: SYS_TOD_OF_DAY:此函数返回当前日期和时间戳,可以用于记录事件的时间。 举例:现在想获取当前时间,假设CODESYS已经安装,首先需要在编程环境中定义一个变量,例如: VAR CurrentTime: ST_DT; END_VAR 然后,在程序中调用获取时间函数,将当前时间赋值给变量CurrentTime: CurrentTime := SYS_TOD_OF_DAY(); 通过此方法,就可以获取当前系统时间了。注意,返回的时间是一个有结构的类型,包含年月日、时分秒等信息。 获取到当前时间后,可以将其记录在日志中,或者与其他数据进行计算和比较。CODESYS提供了很多其他的函数和工具,可以帮助工程师进行控制应用的编程和测试。 ### 回答2: Codesys是一个强大的工具,它可以帮助我们在PLC中编写程序。获取当前时间在PLC控制系统中是非常重要的,因为很多运算和控制都基于时间。 要获取当前时间,首先需要在Codesys中添加日期/时间库。在该库中,我们可以找到一个函数叫做GetLocalTime。这个函数的作用就是获取当前时间。我们只需调用它,它会返回一个包含小时、分钟、秒和毫秒的结构体。 要想使用GetLocalTime函数,我们需要在程序中声明日期/时间库,然后声明一个结构体来存储获取的时间。如下述代码所示: ```c //声明日期/时间库 {$lib datetime} //声明时间结构体 VAR currentTime : TIME := t#0s; stTime : SYSTEMTIME; END_VAR //获取当前时间 GetLocalTime(ADR(stTime)); //将获取的时间存储到结构体中 currentTime := TIME_TO_TIME(stTime.wHour, stTime.wMinute, stTime.wSecond, stTime.wMilliseconds); ``` 在这段代码中,我们调用了GetLocalTime函数来获取系统时间。然后,我们将获取的时间存储到一个TIME类型的变量中。 获取当前时间很简单,只需要几行代码。但是,在实际应用中,我们可能需要对时间进行格式化或者进行其他的时间操作。因此,在编写PLC程序时,我们需要对时间有一个深入的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值