c脚本读取系统日期

代码如下:     

 #include "apdefap.h"
 char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
 time_t  timer;
 struct  tm  *ptm;
 char  *p;
 time(&timer);
 ptm=localtime(&timer);
 p=SysMalloc(9);
 sprintf(p,"%02d:%02d:%02d",ptm->tm_mday,ptm->tm_mon,ptm->tm_year);
 return(p);
 }
 脚本运行后显示29:04:109
 高手解决一下

问题补充:
实际日期是2009年0529

最佳答案

在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:

   #ifndef _TM_DEFINED
   struct tm {
        int tm_sec;    /* 秒 – 取值区间为[0,59] */
        int tm_min;    /* 分 - 取值区间为[0,59] */
        int tm_hour;    /* 时 - 取值区间为[0,23] */
        int tm_mday;    /* 一个月中的日期 - 取值区间为[1,31] */
        int tm_mon;    /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
        int tm_year;    /* 年份,其值等于实际年份减去1900 */
        int tm_wday;    /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
        int tm_yday;    /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
        int tm_isdst;    /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
        };
   #define _TM_DEFINED
   #endif

   因此你要显示实际日期的话写成:
   sprintf(p,"%02d:%02d:%d",ptm->tm_mday,ptm->tm_mon+1,ptm->tm_year+1900);

   参考资料:
   http://blog.csdn.net/jsufcz/archive/2009/02/24/3931314.aspx
 

提问者对于答案的评价:
不错,程序执行的很好。谢了

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • wincc弹出尝试越过其结尾

    wincc7.5在编辑界面是突然弹出框子,见图,怎么情况? 图片说明:    最佳答案 关机重启,系统出错了。 提问者对于答案的评价:

    2021年7月5日
  • sm@rt server 和 SIMATIC WinCC RT 是什么?有什么用?

    电脑装完西门子PLC的软件后,电脑右下角出来两个软件图标,请问这两个有什么用? 图片说明:       最佳答案 1、 什么是&n…

    2021年7月5日
  • wincc死机重启后会将一些变量置0吗

    比如wincc运行时,我点击一个按钮发送一个变量为1的命令,过一段时间wincc电脑或程序死机,重启后这个变量会被置成0吗 最佳答案 不会,只要已经写进PLC,WINCC死机时PL…

    SIMATIC WinCC 2017年6月9日
  • wincc中如何定义两个变量相等

    两个不同站的变量,在wincc中如何定义一个变量追随另一个变量 问题补充:我用的wincc是6.2的,请问各位高手详细解答,本人工控新手,望指教,谢谢 最佳答案 补充一点,用全局动…

    SIMATIC WinCC 2017年11月4日
  • WINCC没有添加新的驱动程序选项

    WINCC V7.3 右键单击变量管理,没有添加新的驱动程序选项是怎么回事?如何解决呢?设备管理器中有个错误,和它有关吗?见下图 图片说明:  &nb…

    2017年7月25日
  • wincc历史数据计算

    想通过wincc实现一些数据统计的功能,比如可以设定时间起止点,对某段时间的历史数据进行积分,计算累积量。这样通过脚本如何实现? 钻石用户推荐最佳答案 1、变量归档需要计算的,你可…

    SIMATIC WinCC 2021年7月5日
  • wincc中输入变量除以100

    大家好,我想把wincc中变量中的一个输入变量(双字)除以100后在显示,有什么方便的办法,C语言中怎么把这个变量除以100,在显示啊? 最佳答案 不用编程,你可以用表达式啊,在表…

    SIMATIC WinCC 2019年6月11日
  • Wincc中VB的语法

    我看到这样一条语句HMIRunTime.Tags("变量名").Read,1我在WinCC帮助中点击“HMIRuntime object”,再点击“T…

    SIMATIC WinCC 2019年6月11日
  • wincc怎么取二进制某位

    在wincc中,怎么将二进制某位由0-1,由1-0,然后让这位输出??? 最佳答案 你是想操作BOOL量么?其他人答得都很对,我就不多说了.但是如果你想操作的是WORD的某一位的话…

    SIMATIC WinCC 2017年6月13日
  • 连接外部变量警告

    我用wincc连接plc中的变量时,产生警告:选择的站没有被连网!要继续并且用带地址0的缺省的MPI连接吗?点确定之后用起来没有问题。但是为什么会产生这样的警告?原因是什么?如何解…

    SIMATIC WinCC 2019年6月11日