To calculate the quarter, you can use the
Time Period Library for .NET:
public static void ShowQuarterInfo( YearMonth yearBaseMonth = YearMonth.January )
{
ShowQuarterInfo( DateTime.Now, yearBaseMonth );
}
public static void ShowQuarterInfo( DateTime moment, YearMonth yearBaseMonth = YearMonth.January )
{
TimeCalendar calendar = new TimeCalendar(
new TimeCalendarConfig { YearBaseMonth = yearBaseMonth } );
Quarter quarter = new Quarter( moment );
Console.WriteLine( "Quarter start: " + quarter.FirstDayStart );
Console.WriteLine( "Quarter end: " + quarter.LastDayStart );
Quarter previousQuarter = quarter.GetPreviousQuarter();
Console.WriteLine( "Previous Quarter start: " + previousQuarter.FirstDayStart );
Console.WriteLine( "Previous Quarter end: " + previousQuarter.LastDayStart );
Quarter nextQuarter = quarter.GetNextQuarter();
Console.WriteLine( "Next Quarter start: " + nextQuarter.FirstDayStart );
Console.WriteLine( "Next Quarter end: " + nextQuarter.LastDayStart );
}
You will find more samples in the article,
Time Period Library for .NET[
^].
Cheers, Jani.