回复:通过当前年月日,计算得到7天前的年月日

已锁定

lllxxs

  • 帖子

    51
  • 精华

    1
  • 被关注

    1

论坛等级:游侠

注册时间:2021-12-21

黄金 黄金 如何晋级?

发布于 2023-09-11 09:53:52

7楼

展开查看
以下是引用zhangli0在2023-09-05 13:06:27的发言 >1楼

你是plc中编程?

plc中建立db,db总建立dtl格式的变量mydatetime,mydatetime1,mydatetime保存当前值,mydatetime1保存7天前的日期

IF "mydata".mydatetime.DAY >7THEN

    "mydata".mydatetime1.YEAR := "mydata".mydatetime.YEAR;

    "mydata".mydatetime1.MONTH := "mydata".mydatetime.MONTH;

    "mydata".mydatetime1.DAY := "mydata".mydatetime.DAY - 7;//如果日期大于7,则日期减去7

ELSIF  "mydata".mydatetime.MONTH >1 THEN

    "mydata".mydatetime1.YEAR := "mydata".mydatetime.YEAR;

    "mydata".mydatetime1.MONTH := "mydata".mydatetime.MONTH - 1;//否则如果月份大于1,则月份减1

    IF "mydata".mydatetime1.MONTH = 1 OR "mydata".mydatetime1.MONTH = 3 OR "mydata".mydatetime1.MONTH = 5 OR "mydata".mydatetime1.MONTH = 7 OR "mydata".mydatetime1.MONTH = 8 OR "mydata".mydatetime1.MONTH = 10 OR "mydata".mydatetime1.MONTH = 12 THEN

        "mydata".mydatetime1.DAY := 31 + ("mydata".mydatetime.DAY - 7);//如果如果减后的月份是大月,则日期为当前日期的差加上上一个月的日期值(30)

    ELSIF  "mydata".mydatetime1.MONTH<>2 THEN

        "mydata".mydatetime1.DAY := 30 + ("mydata".mydatetime.DAY - 7);//如果是上个月小月,且月份不是2,则日期为当前日期的差加上上一个月的日期值(31)

    ELSIF("mydata".mydatetime.YEAR MOD 400=0)OR (("mydata".mydatetime.YEAR MOD 4=0) AND ("mydata".mydatetime.YEAR MOD 100<>0) )THEN//判断是否闰年

        "mydata".mydatetime1.DAY := 29 + ("mydata".mydatetime.DAY - 7);//如果上一个月是2月,且为闰年,则日期为当前日期的差加上上一个月的日期值(29)

    ELSE

        "mydata".mydatetime1.DAY := 28 + ("mydata".mydatetime.DAY - 7);//如果上一个月是2月,且为平年,则日期为当前日期的差加上上一个月的日期值(28)

    END_IF;

    

ELSIF "mydata".mydatetime.MONTH =1 THEN//如果当前月份是1月且日期小于7

    "mydata".mydatetime1.MONTH := 12;//则上一个月是12月

    "mydata".mydatetime1.YEAR := "mydata".mydatetime1.YEAR - 1;//年为当前年份减1

    "mydata".mydatetime1.DAY := 31 + ("mydata".mydatetime.DAY - 7);//日期为当前日期的差加上上一个月的日期值(31)

END_IF;


用了大佬的方法直接就出来了

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15100条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。