2013-03-08 41 views
1

我有以下的用户实体:统计用户按日期范围

public class User 
{ 
    public DateTime Birthday { get; set; } 
} 

我怎么能算按年龄范围的用户?喜欢的东西:

0 to 5 
5 to 15 
... 

我试过如下:

var usersByAge = context.Users.GroupBy(x => x.Info.Birthday).Count(); 

但是,这组用户可以通过他们的生日,并计算它计算一天。 它由白天,因为时间总是空的...

但我需要按年龄范围组。 例如,获取从生日到DateTime.Now的年限。 然后按“0-5”,“5-15”,...组合,然后数一数。

我该怎么做?请告诉我是否清楚。

回答

1

您可以选择过滤它们是这样的:

var year = DateTime.Now.Year; 
var users = yourUserCollection.Count(x => 
    x.BirthDay.Year - year >= 5 && 
    x.BirthDay.Year - year <= 11); 
+0

是已经编辑我的答案thak你;) – 2013-03-08 22:53:47

+0

张贴的代码将计算是旧的,然后5岁时,正确的用户?我需要计算日期范围内的用户。计数0到5之间,6到15之间,16到30之间的用户......在年龄范围内。这有意义吗? – 2013-03-08 22:54:22

+0

我刚更新了我的初始代码,试图更好地解释它。 – 2013-03-08 22:54:58