恭喜,你发布的帖子
发布于 2023-09-11 09:53:52
7楼
你是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;
请填写推广理由:
分享
只看
楼主