Gets the end of quarter.
using System;
public class MainClass{
///
///
/// 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;
}
///
///
/// 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]