Datetime 在Crystal报告中获取上一季度的开始和结束日期
正如许多人所问的(但不是我能找到的Crystal Reports),我正在寻找如何获得上一季度的开始和结束日期 由于今天是2014年7月10日,我可以使用Datetime 在Crystal报告中获取上一季度的开始和结束日期,datetime,crystal-reports,crystal-reports-xi,Datetime,Crystal Reports,Crystal Reports Xi,正如许多人所问的(但不是我能找到的Crystal Reports),我正在寻找如何获得上一季度的开始和结束日期 由于今天是2014年7月10日,我可以使用 DateAdd("Q", -1, CurrentDate) 它返回4/10/2104 12:00:00AM 我想要的是上一个季度的开始和结束日期。今天,这将是2014年4月1日和2014年6月30日。10月,它应该返回2014年7月1日和2014年9月30日。我只想要日期部分,不想要时间 我正在查看Crystal Date和Time以及Da
DateAdd("Q", -1, CurrentDate)
它返回4/10/2104 12:00:00AM
我想要的是上一个季度的开始和结束日期。今天,这将是2014年4月1日和2014年6月30日。10月,它应该返回2014年7月1日和2014年9月30日。我只想要日期部分,不想要时间
我正在查看Crystal Date和Time以及Date Ranges选项,只是没有看到我需要做什么。要获得本季度的第一个日期,以下操作将起作用:
dateVar PrevQuarterDate := Date(DateAdd("Q", -1, CurrentDate));
dateVar PrevQuarterStart := Date(Year(PrevQuarterDate),Month(PrevQuarterDate),1);
PrevQuarterStart;
最后一个日期是相似的:
dateVar PrevQuarterDate := Date(DateAdd("Q", -1, CurrentDate));
dateVar PrevQuarterEnd := Date(Year(PrevQuarterDate),Month(PrevQuarterDate)+3,1)-1;
PrevQuarterEnd;
事实证明,如果上一季度也是上一年,那么上述方法将不起作用。以下是更好的。有足够的代码输入您自己的日期并显示结果,因此也可以进行检查
dateVar ToDaysDate := CurrentDate; // Date(2014,02,11);
dateVar PrevQDtDate := Date(DateAdd("Q", -1, ToDaysDate));
dateVar PrevQStart := dateserial(year(PrevQDtDate),(datepart("q",DateAdd ("q", -1, ToDaysDate))*3)-2, 1);
DateVar PrevQEnd := dateserial(year(ToDaysDate),datepart('q',ToDaysDate)*3-2,1-1);
StringVar DispDates;
DispDates := totext(PrevQStart) + "-" + totext(PrevQEnd);
DispDates;
上一季度的第一个日期:
dateVar myDate := currentDate;
numberVar myMonth := Month(dateadd("q", -1, myDate));
numberVar myYear := Year(dateadd("q", -1, myDate));
myMonth := myMonth - ((myMonth + 2) MOD 3);
date(myYear, myMonth, 1);
dateVar myDate := currentDate;
numberVar myMonth := Month(myDate);
numberVar myYear := Year(myDate);
myMonth := myMonth - ((myMonth + 2) MOD 3);
date(dateadd("d", -1, date(myYear, myMonth, 1)));
上一季度的最后日期:
dateVar myDate := currentDate;
numberVar myMonth := Month(dateadd("q", -1, myDate));
numberVar myYear := Year(dateadd("q", -1, myDate));
myMonth := myMonth - ((myMonth + 2) MOD 3);
date(myYear, myMonth, 1);
dateVar myDate := currentDate;
numberVar myMonth := Month(myDate);
numberVar myYear := Year(myDate);
myMonth := myMonth - ((myMonth + 2) MOD 3);
date(dateadd("d", -1, date(myYear, myMonth, 1)));