主要考虑怎么解决月大月小,还有月底和月初的问题.
钻石用户推荐最佳答案
//计算两个年份之间的天数。只计算完整一年这部分。
//基本好像可以。。。。。
if year1+1>=year2 then //没有完整的一年,不参与计算
else
for i=year1+1 to year2-1
if i%4==0 then
sum=sum+366 //闰年算366日
else
sum=sum+365 //平年算365日
end if
next i
end if
//计算两个月份之间的天数
if (year1==year2)&(month1+1>=month2) then //年相同,月之间没有完整月,就不需要计算什么。
else //否则就出现后面两种情况……
if year1==year2 then //这是第一种情况,年相等,直接计算。
if year1%4==0 then //闰年了
mon[1]=29
else
mon[1]=28
end if
for i=month1 to month2-2 //从当前月的下一个月起,累加,到结束之前的一个月。
sum=sum+mon[i]
next i
else //这是第二种情况,年不相等,分两段计算月。
//1 2 3 4 5 6 7 8 9 10 11 12
//1 2 3 4 5 6 7 8 9 10 11 12
if month1<>12 then //计算前段不足一年的月数的天数。
if year1%4==0 then //闰年了
mon[1]=29
else
mon[1]=28
end if
for i=month1 to 11
sum=sum+mon[i]
next i
end if
if month2<>1 then //计算后段不足一年的月数的天数。
if year2%4==0 then //闰年了
mon[1]=29
else
mon[1]=28
end if
for i=0 to month2-2
sum=sum+mon[i]
next i
end if
end if
end if
//计算两个日期之间的天数
if (year1==year2)&(month1==month2) then
sum=day2-day1
else
if year1%4==0 then
mon[1]=29
else
mon[1]=28
end if
i=month1-1
sum=mon[i]-day1+day2+sum
end if
你不需要看代码,只需要看文字解释就可以大概地了解这个计算日子的过程。就要这么多的过程。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc370636.html