Gets the end of quarter.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cmoss.Util
{
public class DateFunctions
{
/// <summary>
/// Gets the end of quarter.
/// </summary>
/// <param name="date">The date.</param>
/// <returns></returns>
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);
}
}
/// <summary>
/// Gets the days in year.
/// </summary>
/// <param name="date">The date.</param>
/// <returns></returns>
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;
}
}
}
Related examples in the same category