using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace UGQDataAccess; public struct DateRange { public DateTime Start { get; set; } public DateTime End { get; set; } } public static class DataRangeHelper { public static DateRange ThisYear(DateTime date) { DateRange range = new DateRange(); range.Start = new DateTime(date.Year, 1, 1); range.End = range.Start.AddYears(1).AddSeconds(-1); return range; } public static DateRange LastYear(DateTime date) { DateRange range = new DateRange(); range.Start = new DateTime(date.Year - 1, 1, 1); range.End = range.Start.AddYears(1).AddSeconds(-1); return range; } public static DateRange ThisMonth(DateTime date) { DateRange range = new DateRange(); range.Start = new DateTime(date.Year, date.Month, 1); range.End = range.Start.AddMonths(1).AddSeconds(-1); return range; } public static DateRange LastMonth(DateTime date) { DateRange range = new DateRange(); range.Start = (new DateTime(date.Year, date.Month, 1)).AddMonths(-1); range.End = range.Start.AddMonths(1).AddSeconds(-1); return range; } public static DateRange ThisWeek(DateTime date) { DateRange range = new DateRange(); range.Start = date.Date.AddDays(-(int)date.DayOfWeek); range.End = range.Start.AddDays(7).AddSeconds(-1); return range; } public static DateRange LastWeek(DateTime date) { DateRange range = ThisWeek(date); range.Start = range.Start.AddDays(-7); range.End = range.End.AddDays(-7); return range; } public static DateRange Today(DateTime date) { DateRange range = new DateRange(); range.Start = new DateTime(date.Year, date.Month, date.Day); range.End = range.Start.AddDays(1).AddSeconds(-1); return range; } public static DateRange Yesterday(DateTime date) { DateRange range = Today(date); range.Start = range.Start.AddDays(-1); range.End = range.End.AddDays(-1); return range; } }