public static DateTime BeginningOf(this DateTime dateTime, TimeFrame timeFrame, DateTime startOfQuarter1, CultureInfo culture = null) { DateTime dateTime1; if (timeFrame != TimeFrame.Quarter) { return(dateTime.BeginningOf(timeFrame, culture)); } if (culture.EqualNull()) { culture = CultureInfo.CurrentCulture; } if (dateTime.Between <DateTime>(startOfQuarter1, startOfQuarter1.AddMonths(3).AddDays(-1).EndOf(TimeFrame.Day, CultureInfo.CurrentCulture), null)) { return(startOfQuarter1.Date); } if (dateTime.Between <DateTime>(startOfQuarter1.AddMonths(3), startOfQuarter1.AddMonths(6).AddDays(-1).EndOf(TimeFrame.Day, CultureInfo.CurrentCulture), null)) { dateTime1 = startOfQuarter1.AddMonths(3); return(dateTime1.Date); } if (dateTime.Between <DateTime>(startOfQuarter1.AddMonths(6), startOfQuarter1.AddMonths(9).AddDays(-1).EndOf(TimeFrame.Day, CultureInfo.CurrentCulture), null)) { dateTime1 = startOfQuarter1.AddMonths(6); return(dateTime1.Date); } dateTime1 = startOfQuarter1.AddMonths(9); return(dateTime1.Date); }
public static DateTime EndOf(this DateTime dateTime, TimeFrame timeFrame, CultureInfo culture = null) { DateTime dateTime1; if (culture.EqualNull()) { culture = CultureInfo.CurrentCulture; } if (timeFrame.Equals(TimeFrame.Day)) { return(DateTimeHelper.EndOfDay(dateTime)); } if (timeFrame.Equals(TimeFrame.Week)) { dateTime1 = dateTime.BeginningOf(TimeFrame.Week, culture); return(dateTime1.AddDays(6)); } if (timeFrame.Equals(TimeFrame.Month)) { dateTime1 = dateTime.AddMonths(1).BeginningOf(TimeFrame.Month, culture); dateTime1 = dateTime1.AddDays(-1); return(dateTime1.Date); } if (!timeFrame.Equals(TimeFrame.Quarter)) { return(new DateTime(dateTime.Year, 12, 31)); } return(dateTime.EndOf(TimeFrame.Quarter, dateTime.BeginningOf(TimeFrame.Year, culture), culture)); }
public static DateTime BeginningOf(this DateTime dateTime, TimeFrame timeFrame, CultureInfo culture = null) { if (culture.EqualNull()) { culture = CultureInfo.CurrentCulture; } if (timeFrame.Equals(TimeFrame.Day)) { return(dateTime.Date); } if (timeFrame.Equals(TimeFrame.Week)) { DateTime dateTime1 = dateTime.AddDays((double)((int)culture.DateTimeFormat.FirstDayOfWeek - (int)dateTime.DayOfWeek)); return(dateTime1.Date); } if (timeFrame.Equals(TimeFrame.Month)) { return(new DateTime(dateTime.Year, dateTime.Month, 1)); } if (!timeFrame.Equals(TimeFrame.Quarter)) { return(new DateTime(dateTime.Year, 1, 1)); } return(dateTime.BeginningOf(TimeFrame.Quarter, dateTime.BeginningOf(TimeFrame.Year, culture), culture)); }