Gets the end of quarter.

image_pdfimage_print

using System;
public class MainClass{
///

/// Gets the days in year.
///

/// The date. ///
public static int GetDaysInYear(DateTime date)
{
if (date.Equals(DateTime.MinValue))
{
return -1;
}

DateTime thisYear = new DateTime(date.Year, 1, 1);
DateTime nextYear = new DateTime(date.Year + 1, 1, 1);

return (nextYear – thisYear).Days;
}
///

/// Gets the end of quarter.
///

/// The date. ///
public static DateTime GetEndOfQuarter(DateTime date)
{
int daysInYear = GetDaysInYear(date);
double quarter = ((double)date.DayOfYear) / ((double)daysInYear);

if (quarter < 0.25) { return new DateTime(new DateTime(date.Year, 4, 1).Ticks - 1); } else if (quarter < 0.5) { return new DateTime(new DateTime(date.Year, 7, 1).Ticks - 1); } else if (quarter < 0.75) { return new DateTime(new DateTime(date.Year, 10, 1).Ticks - 1); } else { return new DateTime(new DateTime(date.Year + 1, 1, 1).Ticks - 1); } } } [/csharp]