按日期范围统计用户

本文关键字:用户 统计 范围 日期 | 更新日期: 2023-09-27 18:02:57

我有以下用户实体:

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

如何按年龄范围统计用户?比如:

0 to 5
5 to 15
...

我试了如下:

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

但是这个按用户的生日分组并按天计数。它按天计算,因为时间总是空的。

但是我需要按年龄范围分组。例如,以年为单位获取从birthday到DateTime.Now的跨度。然后按"0-5"、"5-15"、……分组。然后计数。

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

按日期范围统计用户

你可以这样选择:

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