如何修改C# DateTime日期判断代码实现延后2天触发指定逻辑
修改思路
- 避免直接比对日期字符串,优先将基准日期字符串解析为
DateTime类型计算时间差,不受系统区域格式影响,稳定性更高 - 计算当前日期与基准日期的间隔天数,调整判断阈值为2天即可满足需求
修改后代码
首先需要在代码文件顶部引入命名空间:
using System.Globalization;
业务逻辑调整为如下内容(推荐方案,兼容性更强):
string today = "#datetime"; // 此处为你的基准日期字符串,格式为dd/MM/yyyy if (DateTime.TryParseExact(today, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime baseDate)) { // 仅取日期部分比对,忽略时分秒的影响 int passedDays = (DateTime.Now.Date - baseDate.Date).Days; // 间隔满2天触发原if分支逻辑 if (passedDays >= 2) { Application.Run(new ClipboardNotification.NotificationForm()); } else { Application.Run(new ClipboardNotification2.NotificationForm()); } } else { // 可在此处添加基准日期格式异常的处理逻辑 Application.Run(new ClipboardNotification2.NotificationForm()); }
如果要保留原有字符串比对的写法,也可以使用以下简化调整方案(不推荐,易受系统日期格式设置影响出错):
string today = "#datetime"; if (today == DateTime.Now.AddDays(-2).ToString("dd/MM/yyyy")) { Application.Run(new ClipboardNotification.NotificationForm()); } else { Application.Run(new ClipboardNotification2.NotificationForm()); }
内容的提问来源于stack exchange,提问作者mariejose
相关产品推荐
相关产品推荐

