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日

相关推荐

  • 急求win2000消息队列

    各位学长:本人急需microsoft message queuing v5.0文件大小大概2M多,谢谢! 最佳答案 操作系统里有,安装时插入2000光…

    SIMATIC WinCC 2019年6月11日
  • 如何保护我的WINCC项目

    WINCC就以一个文件夹的形式存在,很容易给人复制项目来抄袭,请问大家有没有什么好方法来防止别人看到自己的项目里面的内容? 问题补充:如果照T-C4说用SIMATIC L…

    SIMATIC WinCC 2019年6月11日
  • wincc主画面不显示

    wincc启动运行之后,在任务栏看到主画面已运行,但是就是没有显示出来,单独打开PDL文件也没有任何问题,#虚拟机上运行的,以前没出现过这种情况。 问题补充:新建一个工程也是一样,…

    SIMATIC WinCC 2021年7月5日
  • WINCC画面编辑完不能运行最新画面

    我的WINCC画面今天重新修改完保存后,进入运行画面后不能显示修改后的画面,仍然显示以前的画面,不知怎么回事? 最佳答案 楼主说的有点模糊,检查下是否有新增对象,新增的最想是否被隐…

    SIMATIC WinCC 2019年6月11日
  • 解析一段C代码 谢谢

    setpropchar( 问题补充:在使用画面窗口做画面模版时,设了结构变量PID_1.instance_name,将它关联到IO域使显示变量前缀;PID_1.setpoint,P…

    SIMATIC WinCC 2019年6月11日
  • 一台工控机上能同时用两个MPI卡吗

    我有50个S7-200要用一台WINCC去控,MPI通讯只有32个站,若PC上能同时用两个MPI卡是否能达到64个站;在WINCC中如何添加S7-200V区变量 最佳答案 这种方式…

    SIMATIC WinCC 2019年6月11日
  • 趋势图和变量问题

    有二十来个变量,建立了对应的归档变量,合成到了两个趋势图中.原本变量正常,趋势图正常,都能正常反映数字和曲线的变化.然后不知怎么操作,或发生了甚么未知时间,除了开头的一个归档变量和…

    SIMATIC WinCC 2019年6月11日
  • wincc7.2的密码狗

    安装wincc7.2的版本没有狗 钻石用户推荐最佳答案 具体操作方法如下:?C:\Program?Files\Siemens\winCC\BIN文件夹中的?CCExpMsgChs.…

    SIMATIC WinCC 2021年7月5日
  • WINCC与触摸屏的问题

    1、如何把wincc的一个界面总是显示在最前面得页面,就算切换画面也留下,除非自己点退出?2、OP7的触摸屏用什么软件啊?3、如何使wincc在激活的时候切不出去? 最佳答案 1,…

    SIMATIC WinCC 2019年6月11日
  • wincc里的历史趋问题

    我的WINCC工程文件里,历史趋势只能保持7天的历史记录.我想保持两个月的记录应该怎样做. 最佳答案 1.打开变量记录,归档属性里的存储位置选项里的记录编号改一下就可以了。&nbs…

    SIMATIC WinCC 2019年6月11日