每个月都由注册用户使用C#和ASP.NET编制与前一个月相关的客户满意度调查。
例如:
本月份6月,必须完成前一个月5月份客户满意度调查。
5月份的调查必须在6月1日至6月15日完成。
从6月16日到6月30日,我需要显示一个警报,6月份的调查将从7月1日开始。
这段C#代码对你来说正确吗?
string tMonthS = DateTime.Now.AddMonths(1).ToString("MMMM");
DateTime dt = DateTime.Now;
DateTime start = new DateTime(dt.Year, dt.Month, 1).AddDays(15);
DateTime end = start.AddMonths(1).AddDays(-16);
string startOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1).ToString("dd/MM/yyyy");
if (dt == start && dt <= end)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg",
"alert('Alert! The survey for the month of " + tMonthS.ToString() + " " + DateTime.Now.Year + "\\n" +
"available from the day " + startOfMonth.ToString() + "');", true);
}发布于 2022-06-01 17:07:29
您可能希望条件中包含dt >= start,因为否则它将只匹配一天(也就是当天上午的午夜),而且您也不希望对end值进行减法,因为这在所有几个月中都是不可用的;您应该能够使用start.GetMonth().AddMonths(1)或类似的一系列计算来获得end。我不建议把它写成这样的一行代码,但我认为这就是我的想法。
https://stackoverflow.com/questions/72464130
复制相似问题