【发布时间】:2019-11-24 09:43:09
【问题描述】:
我有一个要求,我必须强制将持续时间显示为两年完成。例如,从 2016 年到 2018 年在应用程序中在线活跃的任何客户都应被视为在应用程序中完成两年。这看起来很简单,并使用以下Linq 使其工作:
var result = (from c in db.Users
where c.UserId == id && (c.Start.Year >= 2016 && c.End.Year <= 2018)
select c).ToList ();
int years = 0;
if (result.Count () > 0)
{
years = 2;
}
else
{
//Logic goes here
}
因此可以看出我是在强制它计算两年的持续时间。根据这一点,我将授予用户系统中 20% 的忠诚度。虽然我构建逻辑有点复杂。同样,在该范围内,用户可能在 2016 年至 2017 年期间处于活跃状态。因此这些用户将没有资格获得忠诚度。
对于不符合条件的用户,我怎样才能使上述两个条件的工作两年?任何想法将不胜感激。
【问题讨论】:
-
是否可以有 2015 年的开始年份和 2019 年的结束年份?他们是否也获得了您的忠诚度百分比?
-
Linq似乎很有前途@Tim Schmelter。我会尝试并告诉你。 -
是的@Tyddlywink。这是 2015 年至 2017 年之间的条件 - 两年。
-
那么你想要这个
(c.Start.Year <= 2016 && c.End.Year >= 2018),但这只会返回起始年份为 2016 年或更短,结束年份为 2018 年或更高的用户。你永远不会得到一个不到 2 年的用户。看起来这不是你所追求的。 -
是的,我可以找回它。但我想要第二个以及不到两年的用户@Tyddlywink。