今得闲,就来分析一下,用你的已知推算,推算不用想得很远令人畏难,只在7天之内推算,比如已知2019-10-1为周二,那么,往后推7天即2019-10-8,2个日期相差7天,用7求余为0,这天还是周二,因此要在求余加上已知周几即得正确答案,那比如往后推4天即2019-10-5,2个日期差4用7求余为4再加已知2即得周六也正确,那往后推6天怎样?用7求余为6再加2=8再用7求余为1即得周一才正确,综上所述,即日期往后推应加上已知周二这样一次求余即得正确答案;
那么,往前推日期又是虾米情况?还用上面的3个典型天数推,7天还是周二?随意打开日历算一下就知道应该是周二才对,怎么知道的?先不用跨月算,先用日历上的19和12算7天的就对了,那么,跨月如何算?那就要用到我的函数了即求9月天数再加10月1日的一天得从9月1日起到10月1日的总天数再减去9月的天数即得2个日期差值即往前7天为9月24日,2019-9月为30天再加1天即到国庆总天数为31天-24天=7天,7+2再求余7即得周二.那么,往前4天?怎么算?如前先求出到国庆总天数减去4天可得31-4=27即9月27日,日期计算正确了,差值为4还加2?加2等于6求余为周六,查日历为周五,减去2?减去2等于2求余为周二也不对,怎么算?7+2-4=5,那么,往前6天?差值6,7+2-6=3.对?其中道理自己去悟.从此近推远就通顺了,还用我这函数来做验证:
之上程序往前推算,分别用2018到2014计算都得正确答案,可自己去试一试.
当然了,你也可以用7-4+2或7-6+2的算式同样得到正确答案.
xianfajushi:好吧,最少为了有人想学我,那我就发博文,让想学的人参考,或可学点.
xianfajushi:呵呵,不知道如何教徒弟.
萌新想学编程:老师,收徒弟吗?我想变得跟你一样.
xianfajushi:学的是编程的思想和逻辑,非具体语言,这样的观点就能进入编程三昧.