Various quarter-related DateTime functions in C#
October 28, 2015 2 Comments
The DateTime object – or struct – lacks functions for quarters. You can e.g. add minutes, months, days etc. to a date but not quarters.
Here comes a short list of simple quarter-related functions.
Add quarters to a date:
public DateTime AddQuarters(DateTime originalDate, int quarters) { return originalDate.AddMonths(quarters * 3); }
Example:
DateTime future = AddQuarters(DateTime.UtcNow, 2);
Get the quarter number of a date:
public int GetQuarter(DateTime fromDate) { int month = fromDate.Month - 1; int month2 = Math.Abs(month / 3) + 1; return month2; }
Usage:
int quarter = GetQuarter(DateTime.UtcNow);
Get first and last day of a quarter:
public DateTime GetFirstDayOfQuarter(DateTime originalDate) { return AddQuarters(new DateTime(originalDate.Year, 1, 1), GetQuarter(originalDate) - 1); } public DateTime GetLastDayOfQuarter(DateTime originalDate) { return AddQuarters(new DateTime(originalDate.Year, 1, 1), GetQuarter(originalDate)).AddDays(-1); }
Usage:
DateTime first = GetFirstDayOfQuarter(DateTime.UtcNow); DateTime last = GetLastDayOfQuarter(DateTime.UtcNow);
View all various C# language feature related posts here.
Can you explain how did you come up with the logic for finding quarter based on DateTime?
Can you help me get the quarter of an Hour? So if it’s 0.45 I wat back 0.75?