我想知道一个账户是否在30天内到期.我是否正确使用了DateTime Compare?

if (DateTime.Compare(expiryDate, now) < 30)

{
     matchFound = true;
}

推荐答案

我是否正确使用了日期时间比较?

Compare条只提供两个日期的相对位置信息:更少、相等或更大.你想要的是这样的:

if ((expiryDate - DateTime.Now).TotalDays < 30)
    matchFound = true;

这会减go 两个DateTime.结果是具有TotalDays属性的TimeSpan对象.

此外,条件可以直接写为:

matchFound = (expiryDate - DateTime.Now).TotalDays < 30;

不需要if个.

.net相关问答推荐

.NET发布的应用程序运行与开发不同的端口

Puppeteer LaunchAsync 在未打开浏览器的情况下挂起

Dotnet 反射:使用 F# 中的out参数调用 MethodInfo 上的调用

.Net MAUI Android 无法与 API localhost 对话

防止在 .NET 上构建路径中的反斜杠以进行跨平台部署

MongoDB GridFs with C#,如何存储图片等文件?

线程安全性的单元测试?

如何在 FtpWebRequest 之前判断 FTP 上是否存在文件

在 WinForms 应用程序中查找焦点控件的首选方法是什么?

不同命名空间中的部分类

找不到 Microsoft.Office.Interop Visual Studio

返回 IQueryable 或不返回 IQueryable

为什么 C# 多维数组不实现 IEnumerable

测试没有预期的异常

我不了解应用程序域

监听依赖属性的变化

log4net的正确使用方法(记录器命名)

表单不响应 KeyDown 事件

在 .NET 中乘以时间跨度

System.ServiceModel 在 .NET Core 项目中找不到