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

相关推荐

  • 关于安装PC ACCESS软件

    因为把原来的SP3版卸了,但是没按它说的用什么删除软件删掉,直接把文件夹里面的文件删掉了,我看了注册表也没东西了啊,为什么还是始终装不上 图片说明:    最佳…

    SIMATIC S7-200 2017年11月2日
  • 西门子200PLC指令问题的记录

    怎么使用PLC 自身的记录指令通过连接PC 读取内部信息 最佳答案 1、可以通过读取SM特殊存储区SMB来获得内部信息,例如:西门子S7-200 CP…

    SIMATIC S7-200 2021年7月5日
  • S7-200变量声明表

    我想问下S7-200变量声明表里想做一个定时器应该做在哪个接口里,是IN还是OUT,IN-OUT.还有选择什么数据类型。谢谢 最佳答案 能否在子程序的局部变量中添加定时器类型?S7…

    SIMATIC S7-200 2021年7月5日
  • S7-200PLC的各个扩展模块在程序中怎么表示

    S7-200PLC的各个扩展模块在程序中怎么表示,比如我用CPU226 加个数字量扩展模块EM223和一个模拟量模块EM235,它们(指扩展模块)的输入输出点 …

    SIMATIC S7-200 2020年11月1日
  • s7200 对模拟量信号的处理

    S7200有没有类似s7300的模拟量规范化标准功能指令如:FC105和FC16?如果没有那么怎么进行工程量转换。 最佳答案 1、S7200有现成的指令库。在这个指令库中,子程序S…

    SIMATIC S7-200 2017年11月6日
  • s7-200MAP库函数,伺服电机执行发送脉冲数完毕后,有时会不停止。

    s7-200MAP库函数,控制两台伺服电机,其中有一台执行发送脉冲数完毕后,有时会出现不停止的现象,定位完成信号没有由0变为1,直到碰到限位开关才停下。出现频率不一定,容易导致事故…

    2021年7月5日
  • S7-200与DP/DP COUPLER能进行通讯吗?

    S7-200  CPU224CN 可以通过DP/DP COUPLER与S7-300进行数据交换吗?能的话S7-200怎么做的? 最佳答案 1…

    SIMATIC S7-200 2020年10月31日
  • 侦听数据

    200PLC和一仪表通讯(或者PC和200PLC通讯),我用串口调试软件接收他们之间通讯的数据,现在只知道PLC是主,仪表是从,那么怎么分辨串口调试软件上收到的数据是谁发出的? 最…

    SIMATIC S7-200 2020年11月1日
  • 多台S7-200之间MODBUS自由口通讯(不使用库指令)

    本人手上的三台226固件全是v1.2的,所以不支持Master,Slave库指令,求前辈指点不使用库指令实现一主多从的自由口通讯。使用库指令很方便。但是现在这个没办法使用库指令。最…

    SIMATIC S7-200 2017年11月17日
  • 西门子200下载问题

    200的PLC下载程序时,为何选择不了com口 问题补充:编程下载线换了好几根都没用,我怀疑是不是电脑系统发生问题,有这样的可能性吗 图片说明:    &nbs…

    2017年6月1日

发表回复

登录后才能评论