刚刚在查看RSS的时候,在 c-sharpcorner中发现这样一篇article,
Find the First and Last Days of the Month with C#
本来我是抱着研究一种数学算法的心理准备去看这篇文档的,却发现不是我想要的结果。
其实,这个老外有点过了。如果你想学习一种实现方式,你可以去看看他如何使用减法来实现查找一个月份中最早的一天和最后的一天的方式!但是,如果纯粹是使用.NET的函数库的话,下面的方式也许更加简单。
获取一个月份中最早的一天和最后的一天。在C#的DateTime类中,已经提供了现成的函数,下面分别用两个简单的函数表示:
private DateTime GetFirstDayOfMonth(int Year,int Month)
{
//你见过不是从1号开始的月份么?没有
//那么,直接返回给调用者吧!
//良好的一个编程习惯就是你的代码让人家看了简单易懂
return Convert.ToDateTime(Year.ToString() + "-" + Month.ToString() + "-1");
}
{
//这里的关键就是 DateTime.DaysInMonth 获得一个月中的天数
int Days = DateTime.DaysInMonth(Year, Month);
return Convert.ToDateTime(Year.ToString() + "-" + Month.ToString() + "-" + Days.ToString());
}
{
//你见过不是从1号开始的月份么?没有
//那么,直接返回给调用者吧!
//良好的一个编程习惯就是你的代码让人家看了简单易懂
return Convert.ToDateTime(Year.ToString() + "-" + Month.ToString() + "-1");
}
private DateTime GetLastDayOfMonth(int Year, int Month)
{
//这里的关键就是 DateTime.DaysInMonth 获得一个月中的天数
int Days = DateTime.DaysInMonth(Year, Month);
return Convert.ToDateTime(Year.ToString() + "-" + Month.ToString() + "-" + Days.ToString());
}
在上面两个函数中,我没有写出前面作者那样更多的重载,相信读者您会自己根据需要自己实现的。而且,我也没有对输入参数进行校验,但我还是建议你对参数进行有效性校验一下!
DateTime类中还有一个 DateTime.IsLeapYear( int year) 的函数,用来判断一年是不是闰年,以后,你自己可不用去写什么4的倍数,100整除的判断闰年的方法了。
享受.NET吧!