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高速计数器3问

    1、4X  4倍频说是提高分辨率,还是不太理解,另外,采用4X,最后计数值要不要除以4.  我看有的资料没除,有的说除。我曾经提问过,但也得…

    SIMATIC S7-200 2021年7月5日
  • PID参数调整

    我用S7-200做控制,采用了PID算法实现恒温、恒压控制,因为做的是产品,每次产品到现场都要重新设置PID参数,有时候比较麻烦,问一下各位高手谁用过更好的算法不用设置参数,或者参…

    SIMATIC S7-200 2021年7月4日
  • TD400C停电后数据块丢失

    我使用的事S7-200CPU224XP,编程下载后可以在TD400C上显示需要的数据,但停电或关掉PLC后就显示无数据块了,但其他的程序还是可以使用的,不知是咋回事,请高手指教一下…

    SIMATIC S7-200 2020年10月31日
  • 关于安装PC ACCESS软件

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

    SIMATIC S7-200 2017年11月2日
  • EM223 DC5V电流消耗

    系统配置如下CPU 224XP + EM253 + EM223(223-1BM22-0XA8,32DI/32DO)224输出5V的…

    SIMATIC S7-200 2020年10月31日
  • plc直流输入端L M电源端的压敏电阻如何选配呢?

    我这个压敏电阻烧坏了,看不清型号,我要更换一个,不知如何选型?这个压敏电阻有无直流交流之分呢? 最佳答案 转帖压敏电阻的选用,一般选择标称压敏电压V1mA和通流容量两个参数。  1…

    SIMATIC S7-200 2020年10月31日
  • s200 uss读报警参数

    s200与mm440进行uss通讯,两都之间只有一根通讯线,但是当变频器报警的时候要做报警灯等的处理,我怎么知道变频器在没在报警呢,我是刚学习用uss,这是第一个项目,还请大侠说的…

    SIMATIC S7-200 2021年7月4日
  • 关于PLC采集流量计信号

    流量计三根线工作电压范围 DC5~15V   输出NPN   输出脉冲高电平 >DC&nbsp…

    SIMATIC S7-200 2021年7月5日
  • 200的PLC和RKC MA900温控通讯

    请教各位大神200的PLC可以用MODBUS库和RKC的MA900温控做通信吗,可否提供些资料参考一下,谢谢 最佳答案 1、要用 200 的MODBUS&nbs…

    SIMATIC S7-200 2021年7月5日
  • S7-200 CPU226 相邻两数传送

    S7-200 CPU226 给相邻两个字分别传送不同的值,为什么后面的值把前面给覆盖了,例如十进制的100传送给VW100,接着将十进制101传送给VW101,…

    SIMATIC S7-200 2020年10月31日

发表回复

登录后才能评论