boban.s
Here is how:
public static DateTime FirstDayOfQuarter(DateTime date)
{
int intQuarterNum = (date.Month - 1) / 3 + 1;
return new DateTime(date.Year, 3 * intQuarterNum - 2, 1);
}
public static DateTime LastDayOfQuarter(DateTime date)
{
return FirstDayOfQuarter(date).AddMonths(3).AddDays(-1);
}
public static DateTime FirstDayOfMonth(DateTime date)
{
return date.AddDays(1 - date.Day);
}
public static DateTime LastDayOfMonth(DateTime date)
{
return FirstDayOfMonth(date).AddMonths(1).AddDays(-1);
}
public static int WeekNumber(DateTime date)
{
return date.DayOfYear/7 + 1;
}
Now if we test these functions:
Debug
.WriteLine("This month " + WeekNumber(FirstDayOfMonth(DateTime.Today)) + "-" + WeekNumber(LastDayOfMonth(DateTime.Today)));
Debug.WriteLine("This quarter " + WeekNumber(FirstDayOfQuarter(DateTime.Today)) + "-" + WeekNumber(LastDayOfQuarter(DateTime.Today)));
Debug.WriteLine("Last month " + WeekNumber(FirstDayOfMonth(DateTime.Today.AddMonths(-1))) + "-" + WeekNumber(LastDayOfMonth(DateTime.Today.AddMonths(-1))));
Debug.WriteLine("Last quarter " + WeekNumber(FirstDayOfQuarter(DateTime.Today.AddMonths(-3))) + "-" + WeekNumber(LastDayOfQuarter(DateTime.Today.AddMonths(-3))));
This will be printed for current date 28 july 2007:
This month 27-31
This quarter 27-40
Last month 22-26
Last quarter 14-26