// Return last day of week - Sunday is last day of week public static DateTime GetEndTime(GoalFrequency type) { var res = new DateTime(); var today = DateTime.Now; if (type == GoalFrequency.Weekly) { res = new DateTime(today.Year, today.Month, today.Day, 0, 0, 0); switch (today.DayOfWeek) { case DayOfWeek.Sunday: res = res.AddDays(7); break; case DayOfWeek.Monday: res = res.AddDays(6); break; case DayOfWeek.Tuesday: res = res.AddDays(5); break; case DayOfWeek.Wednesday: res = res.AddDays(4); break; case DayOfWeek.Thursday: res = res.AddDays(3); break; case DayOfWeek.Friday: res = res.AddDays(2); break; } } else if (type == GoalFrequency.Monthly) { res = new DateTime(today.Year, today.Month + 1, 1, 0, 0, 0); } else { res = new DateTime(today.Year, today.Month, 1, 0, 0, 0); switch (today.Month % 3) { case 1: res = res.AddMonths(3); break; case 2: res = res.AddMonths(2); break; } } return(res.AddSeconds(-1)); }
// Return start day of week - Monday is first day of week public static DateTime GetStartTime(GoalFrequency type) { var res = new DateTime(); var today = DateTime.Now; if (type == GoalFrequency.Weekly) { res = new DateTime(today.Year, today.Month, today.Day, 0, 0, 0); switch (today.DayOfWeek) { case DayOfWeek.Monday: res = res.AddDays(-1); break; case DayOfWeek.Tuesday: res = res.AddDays(-2); break; case DayOfWeek.Wednesday: res = res.AddDays(-3); break; case DayOfWeek.Thursday: res = res.AddDays(-4); break; case DayOfWeek.Friday: res = res.AddDays(-5); break; case DayOfWeek.Saturday: res = res.AddDays(-6); break; } } else if (type == GoalFrequency.Monthly) { res = new DateTime(today.Year, today.Month, 1, 0, 0, 0); } else { res = new DateTime(today.Year, today.Month, 1, 0, 0, 0); switch (today.Month % 3) { case 0: res = res.AddMonths(-2); break; case 2: res = res.AddMonths(-1); break; } } return(res); }