Files
caliverse_server/UGQDataAccess/DateRange.cs
2025-05-01 07:20:41 +09:00

98 lines
2.2 KiB
C#

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;
}
}