可空DateTime是否和AddDays()扩展 [英] Nullable DateTimes and the AddDays() extension

查看:235
本文介绍了可空DateTime是否和AddDays()扩展的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个DateTime变量,可以为空或日期时间。我想一个可空DateTime类型的工作,但我得到一个错误,告诉我​​,说:




可空< D​​ateTime的> 不具有AddDays定义




。有没有什么办法可以解决这个问题?



 日期时间? lastInvite =(DateTime的?)会话[LastInviteSent];如果

((字符串)会议[InviteNudgeFlag] ==假&放大器;及((lastInvite == NULL和放大器;&放大器; DateTime.Now> = AcctCreation.AddDays(7) )||(INT)会议[InviteCount]大于0和放大器;&放大器; DateTime.Now> = lastInvite.AddDays(7)))
{
//非重要的位置代码
}


解决方案

您应该考虑尝试让你的逻辑更可读:

  VAR inviteNudgeFlag = bool.Parse((字符串)会议[inviteNudgeFlag]); 

如果(inviteNudgeFlag!)
{
的回报;
}

VAR lastInvite =(DateTime的?)会话[LastInviteSent];
VAR inviteCount =(int)的会议[InviteCount];
VAR numOfDays = 7;
变种现在= DateTime.Now;

VAR weekSinceLastInvite = lastInvite.HasValue
?现在> = lastInvite.Value.AddDays(numOfDays)
:现在> = AcctCreation.AddDays(numOfDays);

VAR hasInvites =!lastInvite.HasValue || inviteCount> 0;
VAR canInvite = hasInvites&放大器;&安培; weekSinceLastInvite;

如果(canInvite!)
{
的回报;
}


I have a DateTime variable that can either be null or a Datetime. I figured a nullable DateTime type would work, but I am getting an error telling me that said

Nullable<DateTime> does not have a definition for AddDays

. Is there any way to resolve this error?

DateTime? lastInvite = (DateTime?)Session["LastInviteSent"];

if ((string)Session["InviteNudgeFlag"] == "False" && ((lastInvite == null && DateTime.Now >= AcctCreation.AddDays(7)) || (int)Session["InviteCount"] > 0 && DateTime.Now >= lastInvite.AddDays(7)))
{
   // Non important code here
}

解决方案

You should consider trying to make your logic more readable:

var inviteNudgeFlag = bool.Parse((string) Session["InviteNudgeFlag"]);

if(!inviteNudgeFlag)
{
    return;
}

var lastInvite = (DateTime?) Session["LastInviteSent"];   
var inviteCount = (int) Session["InviteCount"];
var numOfDays = 7;
var now = DateTime.Now;

var weekSinceLastInvite = lastInvite.HasValue
                            ? now >= lastInvite.Value.AddDays(numOfDays)
                            : now >= AcctCreation.AddDays(numOfDays);

var hasInvites = !lastInvite.HasValue || inviteCount > 0;
var canInvite = hasInvites && weekSinceLastInvite;

if(!canInvite)
{
    return;
}

这篇关于可空DateTime是否和AddDays()扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆