楼主最近还看过
读取系统的当前日期和月份,当前日加5是否大于30,31,28,29,这取决于月份,不同的月份和不同的数字比较,这个我不用说的太详细吧,一年就那么几个月,那个月多少天这个看看日历应该就解决了。如果大于了就减掉当前月的最大天数,得出的差就是你想要的那个日子啊(记得月份要加1,且大于12要归1),如果没大于那几个数字,那么加起来的和就是你想要的日子啊(月份就是当前月)。这里面比较麻烦的就是28,和29这个和年份挂钩,你可以自己写程序判断平年闰年,也可以看看维纶读取日期函数有没有捎带平润年的标志位,我记得有一家屏是有的,你也可以拿手机看看未来10年的2月具体天数,在程序里做出来不同年份的2月份要和28或者29做加减,这样你就得判断当前年是哪一年了,这没啥难度的,多想想就整出来了。
我试着写了写
macro_command main()
int day
int month
int year
int a
int day1
int month1
int year1
int day2
int month2
int year2
GetData(day "Local HMI", LW, 9013, 1)
GetData(month, "Local HMI", LW, 9014, 1)
GetData(day, "Local HMI", LW, 9015, 1)
GetData(a, "Local HMI", LW, 0, 1)
day1=day+a
month1=month
year1=year
//1月份
if (month1==1) and (day1>31)then
day2=day1-31
month2=month1+1
end if
//闰年2月份
if (month1==2) and (day1>29) and (year1%400==0)then
day2=day1-29
month2=month1+1
end if
if (month1==2) and (day1>29) and (year1%4==0) and (year1%100<>0) then
day2=day1-29
month2=month1+1
end if
//平年2月份
if (month1==2) and (day1>28) and (year1%400<>0) and (year1%100==0) then
day2=day1-28
month2=month1+1
end if
if (month1==2) and (day1>28) and (year1%4<>0) then
day2=day1-28
month2=month1+1
end if
//3月份
if (month1==3) and (day1>31)then
day2=day1-31
month2=month1+1
end if
//4月份
if (month1==4) and (day1>30)then
day2=day1-30
month2=month1+1
end if
//5月份
if (month1==5) and (day1>31)then
day2=day1-31
month2=month1+1
end if
//6月份
if (month1==6) and (day1>30)then
day2=day1-30
month2=month1+1
end if
//7月份
if (month1==7) and (day1>31)then
day2=day1-31
month2=month1+1
end if
//8月份
if (month1==8) and (day1>31)then
day2=day1-31
month2=month1+1
end if
//9月份
if (month1==9) and (day1>30)then
day2=day1-30
month2=month1+1
end if
//10月份
if (month1==10) and (day1>31)then
day2=day1-31
month2=month1+1
end if
//11月份
if (month1==11) and (day1>30)then
day2=day1-30
month2=month1+1
end if
//12月份
if (month1==12) and (day1>31)then
day2=day1-31
month2=month1+1
year2=year1+1
end if
SetData(day2, "Local HMI", LW, 1, 1)
SetData(month2, "Local HMI", LW, 2, 1)
SetData(year2, "Local HMI", LW, 3, 1)
逻辑大概就是这个逻辑,寄存器,元件啥的自己试试,应该可以
"生活所迫1" 的回复,发表在4楼
对内容: 【我试着写了写macro_command main()int dayint monthint yearint aint day1int month1int year1int day2int month2...】进行回复:
-----------------------------------------------------------------
这样写着试了一下,不夸年份是可以的 , 好像有一个问题就是夸年份了,当前日期加上我设定的天数后如果大于了当前年份的时间 年份会加1 月份只能加到一月份,就算设定天数继续加大也只能计算到一月份,只有号的数值在增加都能计算到40几号去,比如:现在时间时2022年 11月 2号 如果我设定的天数设置 100天后 计算的结果是 2023年 1月 41号