Anele Ngqandu Ответов: 1

Как получить предстоящие дни рождения, начиная с текущего дня


Привет
Мне нужна быстрая модификация моего запроса, чтобы получить предстоящие дни рождения. В настоящее время я получаю их, но показывает прошедшие дни рождения текущего месяца.

Что я уже пробовал:

var day = DateTime.Today;
            // var currentDay = DateTime.Now.Day;
            var month = day.AddMonths(3);
            var note = (from cn in _peopleRepository.GetAll()
                        where cn.PeopleTypeId == 3
                        && cn.BirthDate.Value.Month >= day.Month && cn.BirthDate.Value.Month <= month.Month
                        orderby cn.BirthDate.Value.Month, cn.BirthDate.Value.Day
                        select new GetLandlordBirthdayOutput
                        {
                            Id = cn.Id,
                            FirstName = cn.FirstName,
                            LastSurname = cn.LastName,
                            Province = cn.Province,
                            City = cn.City,
                            Suburb = cn.Suburb,
                            Email = cn.EmailAddress,
                            Phone = cn.CellNumber,
                            Birthday = cn.BirthDate
                        }).ToList();

Richard MacCutchan

Вы сравниваете только значения месяца, а не дня или года. Гораздо лучше сделать сравнение по полным значениям как дня, так и месяца.

Anele Ngqandu

Я попробовал это " & amp; & amp; cn.Дата рождения.Ценность.День >= День.День
усилитель&;&амп; спицы.Дата рождения.Ценность.Месяц <= месяц.Месяц", то я не получаю предстоящие дни из других месяцев

Richard MacCutchan

Конечно, нет, посмотрите, что вы сравниваете. Забудьте о сравнении месяцев и дней и просто сравните полные даты:
If date is greater than today and less than (today + three months) ...

1 Ответов

Рейтинг:
0

sameer549

DateTime dateNext = new DateTime(day.Year,day.Month,day.Day).AddDays(1);
var upcoming = note.where(r => r.BirthDate >= dateNext);