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日 上午9:54
下一篇 2019年6月11日 上午9:54

相关推荐

  • 触摸屏编写完后就会出现一堆devices文件,这个怎么隐藏或者让它不会出现

    wincc flexible smart的触摸屏 最佳答案 使用项目复制器复制你的项目后不打开,就没有这些文件了。你没有必要去处理那些文件。 提问者对于答案的评…

    SIMATIC WinCC 2021年7月5日
  • 安装WINCC 6.2的问题请教大家

    由于论坛无法贴出,帖子在以下链接,请大家帮忙看看,找个软件怎么这么难安装啊。 http://bbs.gkong.com/dispbbs.asp?Boardid=29&id…

    SIMATIC WinCC 2019年6月11日
  • wincc7.5与西门子PLC通信

    wincc7.5作为上位机与西门子PLC通信时,可以赋值给西门子PLC的I区吗?比如I0.1、I0.2等 最佳答案 要看I点有没分配给模块,如果I0.0没有被分配是可以写入的! 提…

    SIMATIC WinCC 2020年11月1日
  • wincc按钮及IO输出问题

    1.想用1个按钮,同时置位3个变量,几秒之后复位此按钮,不能让按钮一直为1,VBS脚本怎么写。2.读取设备的数据比如1000,想除以100,在属性哪里可以修改? 问题补充:IO变量…

    SIMATIC WinCC 2021年7月5日
  • wincc6.0升级7.0后C脚本的变量触发器不执行了

    前几天把系统的6.2版本wincc升级到了wincc7.0 sp1 结果发现 所有C脚本的变量触发器都不执行了。例如我有一个阀门 在画面上用…

    SIMATIC WinCC 2019年6月11日
  • 用户归档未实现

    我用网站上下了一个fortest例子,往用户归档中写数据成功了,但是就在查询那里出了问题,数据查询不到,在打印时能出来那个表,但是没有数据,比如在报表编辑器里ODBC所连接的数据源…

    SIMATIC WinCC 2019年6月11日
  • WINCC 6.2 与7.0 的趋势控件不同处

    在 wincc 6.2 中用VB写的于控制趋势控件中趋势的显示隐藏的脚本,为什么复制到7.0中就不好用了呢。我想了解一下到底是控件的问题还是其他什么问…

    SIMATIC WinCC 2017年11月19日
  • wincc 自动打印报表

    wincc 报表可以手动打印,但是设置成每天晚上12点打印却打印不出来,大家看看我的设置是不是有问题啊~ 图片说明:       …

    2020年11月1日
  • WINCC自带报表几个问题

    1、打印预览时,发现数据都是从第2页开始,怎么让它从第一页开始? 2、当变量多时列放不下啊,我只好在一个布局中做了2个动态表格,可第2个怎么查看?是不是需要建立多个布局和…

    SIMATIC WinCC 2019年6月11日
  • WINCC运行画面很慢

    我们的WINCC运行系统在运行了一年多之后,画面的反应速度很慢,比如切换画面之类的动作,相应非常慢,请问是什么原因呢? 专家建议 请参考以下文档检查归档参数的设置: ht…

    SIMATIC WinCC 2020年11月1日