if month({@end-date}) = 1 then
if day({@end-date}) = 1 then
dateadd("d",30,{@end-date})
else if day({@end-date}) = 2 then
dateadd("d",29,{@end-date})
else if day({@end-date}) = 3 then
dateadd("d",28,{@end-date})
else if day({@end-date}) = 4 then
dateadd("d",27,{@end-date})
else if day({@end-date}) = 5 then
dateadd("d",26,{@end-date})
else if day({@end-date}) = 6 then
dateadd("d",25,{@end-date})
else if day({@end-date}) = 7 then
dateadd("d",24,{@end-date})
else if day({@end-date}) = 8 then
dateadd("d",23,{@end-date})
else if day({@end-date}) = 9 then
dateadd("d",22,{@end-date})
else if day({@end-date}) = 10 then
dateadd("d",21,{@end-date})
else if day({@end-date}) = 11 then
dateadd("d",20,{@end-date})
else if day({@end-date}) = 12 then
dateadd("d",19,{@end-date})
else if day({@end-date}) = 13 then
dateadd("d",18,{@end-date})
else if day({@end-date}) = 14 then
dateadd("d",17,{@end-date})
else if day({@end-date}) = 15 then
dateadd("d",16,{@end-date})
else if day({@end-date}) = 16 then
dateadd("d",15,{@end-date})
else if day({@end-date}) = 17 then
dateadd("d",14,{@end-date})
else if day({@end-date}) = 18 then
dateadd("d",13,{@end-date})
else if day({@end-date}) = 19 then
dateadd("d",12,{@end-date})
else if day({@end-date}) = 20 then
dateadd("d",11,{@end-date})
else if day({@end-date}) = 21 then
dateadd("d",10,{@end-date})
else if day({@end-date}) = 22then
dateadd("d",9,{@end-date})
else if day({@end-date}) = 23 then
dateadd("d",8,{@end-date})
else if day({@end-date}) = 24 then
dateadd("d",7,{@end-date})
else if day({@end-date}) = 25 then
dateadd("d",6,{@end-date})
else if day({@end-date}) = 26 then
dateadd("d",5,{@end-date})
else if day({@end-date}) = 27 then
dateadd("d",4,{@end-date})
else if day({@end-date}) = 28 then
dateadd("d",3,{@end-date})
else if day({@end-date}) = 29 then
dateadd("d",2,{@end-date})
else
dateadd("d",1,{@end-date})
我希望在给定日期字段的情况下找到该月的最后一天。有一个更好的方法吗?例如,2014年7月1日将返回2014年1月31日,2014年8月2日将返回02/28/2014,依此类推。
答案 0 :(得分:1)
您可以使用DateSerial()
功能轻松地从原始日期构建您的EOM日期。这段代码基本上做的是找到下个月的第一天,然后返回一天给你当月的结束。您可能希望查看有关该功能的官方文档,以澄清发生了什么。
DateSerial
(
year({table.date}, //year
month({table.date}) + 1, //the following month
1 - 1 //days; go back one day from the first of the following month
)
答案 1 :(得分:0)
我总结一个月,然后减去一天的部分。下面的公式应该做的工作。
NumberVar dayOfMonth := DatePart ("d", {Result.DataContrato});
DateTimeVar sameDayNextMonth := DateAdd ("m", 1, {Result.DataContrato});
DateTimeVar lastDayOfMonth := DateAdd("d", -dayOfMonth, sameDayNextMonth);
lastDayOfMonth
只是另一种选择。