200smat设定一个日期与系统实时日期怎么进行运算,得出相差天数.

主要考虑怎么解决月大月小,还有月底和月初的问题.

钻石用户推荐最佳答案

//计算两个年份之间的天数。只计算完整一年这部分。
//基本好像可以。。。。。
if year1+1>=year2 then    //没有完整的一年,不参与计算
else
 for i=year1+1 to year2-1
  if i%4==0 then
   sum=sum+366    //闰年算366日
  else
   sum=sum+365    //平年算365日
  end if
 next i
end if
//计算两个月份之间的天数
if (year1==year2)&(month1+1>=month2) then   //年相同,月之间没有完整月,就不需要计算什么。
else     //否则就出现后面两种情况……
 if year1==year2 then   //这是第一种情况,年相等,直接计算。
  if year1%4==0 then   //闰年了
   mon[1]=29
  else
   mon[1]=28
  end if
  for i=month1 to month2-2 //从当前月的下一个月起,累加,到结束之前的一个月。
  sum=sum+mon[i] 
  next i
 else       //这是第二种情况,年不相等,分两段计算月。
  
  //1 2 3 4 5 6 7 8 9 10 11 12
  //1 2 3 4 5 6 7 8 9 10 11 12
  if month1<>12 then   //计算前段不足一年的月数的天数。
   if year1%4==0 then   //闰年了
    mon[1]=29
   else
    mon[1]=28
   end if
   for i=month1 to 11
    sum=sum+mon[i]
   next i
  end if
  if month2<>1 then   //计算后段不足一年的月数的天数。
   if year2%4==0 then   //闰年了
    mon[1]=29
   else
    mon[1]=28
   end if
   for i=0 to month2-2
    sum=sum+mon[i]
   next i
  end if
 end if
end if
//计算两个日期之间的天数
if (year1==year2)&(month1==month2) then
 sum=day2-day1
else
 if year1%4==0 then
  mon[1]=29 
 else
  mon[1]=28
 end if
 i=month1-1
 sum=mon[i]-day1+day2+sum
end if

你不需要看代码,只需要看文字解释就可以大概地了解这个计算日子的过程。就要这么多的过程。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午4:20
下一篇 2021年7月5日 下午4:20

相关推荐

  • 用s7-200采集距离比较远的模拟量数据如何采集

    用s7-200采集距离比较远的模拟量数据如何采集,如何接线,用什么电缆,多远的距离不会受到干扰 问题补充:我想采集PLC-200采集5个角度信号,而这个5个角度传感器的位置不同,而…

    SIMATIC S7-200 2020年10月31日
  • 奇怪的限位

    一台设备控制程序中,有一个门的控制.手动和自动控制时,均通过限位来断开输出.采用手动时,上升限位I2.0能下常动作,断开输出.但当采用自动时,清理室门的限位不能将清理室门输出(Q0…

    SIMATIC S7-200 2021年7月5日
  • s7200 plc断电后无法保存hitech触摸屏设定的参数。

    系统的s7200的plc和hitech触摸屏连接,之前已经正常使用了5年,最近一次,因为系统中一24VDC的高速计数器短路,造成整个系统的24VDC保险丝烧毁,解决好短路问题,换好…

    SIMATIC S7-200 2020年10月31日
  • 200下载问题

    win7 64位旗舰版,安装了博图、step7、microwinsp9,在用microwin下载程序时提示未连接电缆,可是我已经插入下载电缆了,并且驱动也已经安装成功,打…

    2017年8月26日
  • S7-200以太网向导配置问题

    我在配置S7-200以太网向导的时候,第一步要读取模块位置,为什么我点击读取模块没有反应呢?我的硬件时CUP 222 CN,后面连接CP243-1。不知这个CP…

    SIMATIC S7-200 2020年11月1日
  • 关于扫描周期

    请问,在STEP 7 MICRO/WIN SP4中,PLC—信息—扫描周期中,为什么有 最后刷新,最小,最大?他们分别对应一个时间。…

    SIMATIC S7-200 2021年7月5日
  • s7200的梯形图,转成LOGO的编程图

    两台电机交替运行,运行时长为24小时,一台启动另一台就停止。S7-200的梯形图我已经画完了,现在想用LOGO的编程软件也同样实现这样的功能。但看起来编程方法差很多,求大神帮忙指点…

    2021年7月5日
  • s7-200为什么长时间断电后,就启动不起来了

    我们公司有两台型号为s7-200 cn订货号为212-1BB23-0XB8西门子plc。在2009年6月正常停机后一直没有启动过。2011年5月因为生产需要重新启动这两台…

    SIMATIC S7-200 2020年11月1日
  • 如何重置定时器而又不影响后续程序运行

    如图所示,T37定时到5S时复位T37的前置条件M0.0,但是为什么应该由T37置位的Q0.0没有被置位? 问题补充:那如何才能使Q0.0被置位,又复位M0.0呢? 图片说明: &…

    2017年6月10日
  • 请教如何编程驱动步进电机

    我想用S7-200来控制步进电机,请问如何编程,就是如何随机的更改输出脉冲的频率的脉冲的个数?谢谢 问题补充:我用Q0.1输出脉冲,Q0.0控制方向,可步进驱动器需要负脉冲怎么办?…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论