I have to display records for current quarter only.
so can someone please tell me How can I get First Date and Last date of current quarter through coding?
Or Lets say First Date and Last Date for quarter of current date.
/// <summary>
/// Return First and Last Dates of Current Quarter based on Year starting 1st January
/// </summary>
/// <returns></returns>
public static DateTime[] DatesOfQuarter( )
{
var dtmValue = DateTime.Now;
return DatesOfQuarter(dtmValue);
}
/// <summary>
/// Return First and Last Dates of Quarter containing specified date (based on Year starting 1st January)
/// </summary>
/// <returns></returns>
public static DateTime[] DatesOfQuarter(DateTime dtmValue )
{
var dtmReturn = new DateTime[2];
var intQuarter = (int)Math.Ceiling(dtmValue.Month/3M);
var intLastMonthOfQuarter = intQuarter * 3;
var intFirstMonthOfQuarter = intLastMonthOfQuarter - 2;
var intLastDayOfQuarter = DateTime.DaysInMonth(dtmValue.Year, intLastMonthOfQuarter);
dtmReturn[0] = new DateTime(dtmValue.Year, intFirstMonthOfQuarter, 1);
dtmReturn[1] = new DateTime(dtmValue.Year, intLastMonthOfQuarter, intLastDayOfQuarter);
return dtmReturn;
}
var intLastDayOfQuarter = DateTime.DaysInMonth(dtmValue.Year, intLastMonthOfQuarter);
dtmReturn[0] = new DateTime(dtmValue.Year, intFirstMonthOfQuarter, 1);
dtmReturn[1] = new DateTime(dtmValue.Year, intLastMonthOfQuarter, intLastDayOfQuarter);
return dtmReturn;
}
It would be trivial to add overloads to cope with a different year start.
If you are not using DotNet 3.0 or above, the "var" keyword will need to be replaced with "int" or "DateTime" as appropriate.
niravparekh
Member
704 Points
427 Posts
How to get First Date and Last Date of Current Quarter programatically using c#
Apr 29, 2009 07:31 PM|LINK
Hi,
I have to display records for current quarter only.
so can someone please tell me How can I get First Date and Last date of current quarter through coding?
Or Lets say First Date and Last Date for quarter of current date.
Thanks in advance
rojay12
Contributor
4065 Points
738 Posts
Re: How to get First Date and Last Date of Current Quarter programatically using c#
Apr 29, 2009 08:12 PM|LINK
public DateTime[] DatesOfQuarter() { DateTime[] dtReturn = new DateTime[2]; DateTime dtNow = System.DateTime.Now; if (dtNow.Month >= 1 && dtNow.Month <= 3) { dtReturn[0] = DateTime.Parse("1/1/" + dtNow.Year.ToString()); dtReturn[1] = DateTime.Parse("3/31/" + dtNow.Year.ToString()); } else if (dtNow.Month >= 4 && dtNow.Month <= 6) { dtReturn[0] =DateTime.Parse("4/1/" + dtNow.Year.ToString()); dtReturn[1] = DateTime.Parse("6/3/" + dtNow.Year.ToString()); } else if (dtNow.Month >= 7 && dtNow.Month <= 9) { dtReturn[0] = DateTime.Parse("7/1/" + dtNow.Year.ToString()); dtReturn[1] = DateTime.Parse("9/30/" + dtNow.Year.ToString()); } else if (dtNow.Month >= 10 && dtNow.Month <= 12) { dtReturn[0] = DateTime.Parse("10/1/" + dtNow.Year.ToString()); dtReturn[1] = DateTime.Parse("12/31/" + dtNow.Year.ToString()); } return dtReturn; }Lead Application Developer
niravparekh
Member
704 Points
427 Posts
Re: How to get First Date and Last Date of Current Quarter programatically using c#
Apr 29, 2009 08:29 PM|LINK
Hi, Thanks for your reply. I think there is just one thing mistyped, I think it should be
dtReturn[1] = DateTime.Parse("6/30/" + dtNow.Year.ToString());
It worked perfect.
Thanks again
IanAshton
Member
2 Points
1 Post
Re: How to get First Date and Last Date of Current Quarter programatically using c#
Oct 14, 2009 09:33 PM|LINK
The following also works:
/// <summary>
/// Return First and Last Dates of Current Quarter based on Year starting 1st January
/// </summary>
/// <returns></returns>
public static DateTime[] DatesOfQuarter( )
{
var dtmValue = DateTime.Now;
return DatesOfQuarter(dtmValue);
}
/// <summary>
/// Return First and Last Dates of Quarter containing specified date (based on Year starting 1st January)
/// </summary>
/// <returns></returns>
public static DateTime[] DatesOfQuarter(DateTime dtmValue )
{
var dtmReturn = new DateTime[2];
var intQuarter = (int)Math.Ceiling(dtmValue.Month/3M);
var intLastMonthOfQuarter = intQuarter * 3;
var intFirstMonthOfQuarter = intLastMonthOfQuarter - 2;
var intLastDayOfQuarter = DateTime.DaysInMonth(dtmValue.Year, intLastMonthOfQuarter);
dtmReturn[0] = new DateTime(dtmValue.Year, intFirstMonthOfQuarter, 1);
dtmReturn[1] = new DateTime(dtmValue.Year, intLastMonthOfQuarter, intLastDayOfQuarter);
return dtmReturn;
}
var intLastDayOfQuarter = DateTime.DaysInMonth(dtmValue.Year, intLastMonthOfQuarter);
dtmReturn[0] = new DateTime(dtmValue.Year, intFirstMonthOfQuarter, 1);
dtmReturn[1] = new DateTime(dtmValue.Year, intLastMonthOfQuarter, intLastDayOfQuarter);
return dtmReturn;
}
It would be trivial to add overloads to cope with a different year start.
If you are not using DotNet 3.0 or above, the "var" keyword will need to be replaced with "int" or "DateTime" as appropriate.
Ian Ashton
Senior Application Developer