威纶通触摸屏宏指令 点击:1119 | 回复:10



nanfei002

    
  • 精华:0帖
  • 求助:38帖
  • 帖子:38帖 | 38回
  • 年度积分:873
  • 历史总积分:1404
  • 注册:2019年6月26日
发表于:2022-10-27 13:54:16
楼主
求助帖50分-已结帖

威纶通触摸屏怎么编写一个可以自动计算出日期的宏指令,  想法是:假如设定 5 (表示5天后),宏指令根据设定时当时的日期加上5天后 自动计算出五天以后是多少日期,  

1分不嫌少!


楼主最近还看过



梦雨天涯

  • 精华:1帖
  • 求助:1帖
  • 帖子:226帖 | 348回
  • 年度积分:1419
  • 历史总积分:14108
  • 注册:2016年10月25日
发表于:2022-10-28 11:52:21
1楼

大概就是加5,然后判断是否大于当前月,大于就加1,判断是否大于12月,大于加1,判断闰年

121111115

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 378回
  • 年度积分:594
  • 历史总积分:21966
  • 注册:2016年1月20日
发表于:2022-10-29 22:41:59
2楼

读取系统的当前日期和月份,当前日加5是否大于30,31,28,29,这取决于月份,不同的月份和不同的数字比较,这个我不用说的太详细吧,一年就那么几个月,那个月多少天这个看看日历应该就解决了。如果大于了就减掉当前月的最大天数,得出的差就是你想要的那个日子啊(记得月份要加1,且大于12要归1),如果没大于那几个数字,那么加起来的和就是你想要的日子啊(月份就是当前月)。这里面比较麻烦的就是28,和29这个和年份挂钩,你可以自己写程序判断平年闰年,也可以看看维纶读取日期函数有没有捎带平润年的标志位,我记得有一家屏是有的,你也可以拿手机看看未来10年的2月具体天数,在程序里做出来不同年份的2月份要和28或者29做加减,这样你就得判断当前年是哪一年了,这没啥难度的,多想想就整出来了。

梦雨天涯

  • 精华:1帖
  • 求助:1帖
  • 帖子:226帖 | 348回
  • 年度积分:1419
  • 历史总积分:14108
  • 注册:2016年10月25日
发表于:2022-10-31 08:42:21
3楼

"121111115" 的回复,发表在2楼
        对内容: 【读取系统的当前日期和月份,当前日加5是否大于30,31,28,29,这取决于月份,不同的月份和不同的数字比较,这个我不用说的太详细吧,一年就那么几个月,那个月多少天这个看看日历应该就解决了。如果大于了...】进行回复:

        -----------------------------------------------------------------


大佬牛逼拉丝

生活所迫1

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 80回
  • 年度积分:1174
  • 历史总积分:1411
  • 注册:2021年12月17日
发表于:2022-10-31 14:27:33
4楼

我试着写了写

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)   

逻辑大概就是这个逻辑,寄存器,元件啥的自己试试,应该可以

 


nanfei002

  • 精华:0帖
  • 求助:38帖
  • 帖子:38帖 | 38回
  • 年度积分:873
  • 历史总积分:1404
  • 注册:2019年6月26日
发表于:2022-11-02 11:29:03
5楼

"生活所迫1" 的回复,发表在4楼
        对内容: 【我试着写了写macro_command main()int dayint monthint yearint aint day1int month1int year1int day2int month2...】进行回复:

        -----------------------------------------------------------------


这样写着试了一下,不夸年份是可以的  , 好像有一个问题就是夸年份了,当前日期加上我设定的天数后如果大于了当前年份的时间 年份会加1  月份只能加到一月份,就算设定天数继续加大也只能计算到一月份,只有号的数值在增加都能计算到40几号去,比如:现在时间时2022年 11月 2号  如果我设定的天数设置 100天后  计算的结果是  2023年 1月 41号   

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2022-12-14 09:59:52
6楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。



疯狂的二极管

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2016年5月19日
发表于:2022-12-20 22:31:15
7楼

下载学习,谢谢楼主的无私

疯狂的二极管

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2016年5月19日
发表于:2022-12-20 22:31:20
8楼

下载学习,谢谢楼主的无私

疯狂的二极管

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2016年5月19日
发表于:2022-12-20 22:31:29
9楼

下载学习,谢谢楼主的无私

aewsvcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 15回
  • 年度积分:183
  • 历史总积分:638
  • 注册:2021年10月23日
发表于:2022-12-30 16:51:10
10楼

大佬牛逼拉丝


热门招聘
相关主题

官方公众号

智造工程师