您的位置:首页 > 编程语言 > C#

C#中获得月份中的第一天和最后一天和判断闰年

2012-01-06 16:03 429 查看
private DateTime GetFirstDayOfMonth(int Year,int Month)

{

//你见过不是从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吧!

---------------------------------------------------------

另一个: http://www.cnblogs.com/s021368/articles/1802015.html

/// <summary>

/// 取得某月的第一天

/// </summary>

/// <param name="datetime">要取得月份第一天的时间</param>

/// <returns></returns>

private DateTime FirstDayOfMonth(DateTime datetime)

{

return datetime.AddDays(1 - datetime.Day);

}

/**//// <summary>

/// 取得某月的最后一天

/// </summary>

/// <param name="datetime">要取得月份最后一天的时间</param>

/// <returns></returns>

private DateTime LastDayOfMonth(DateTime datetime)

{

return datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1);

}

/**//// <summary>

/// 取得上个月第一天

/// </summary>

/// <param name="datetime">要取得上个月第一天的当前时间</param>

/// <returns></returns>

private DateTime FirstDayOfPreviousMonth(DateTime datetime)

{

return datetime.AddDays(1 - datetime.Day).AddMonths(-1);

}

/**//// <summary>

/// 取得上个月的最后一天

/// </summary>

/// <param name="datetime">要取得上个月最后一天的当前时间</param>

/// <returns></returns>

private DateTime LastDayOfPrdviousMonth(DateTime datetime)

{

return datetime.AddDays(1 - datetime.Day).AddDays(-1);

}
http://www.cn-web.com/shtml/article/net/csharp/2009/02/04/366.shtml
=================================================

.Net中获取一周第一天、最后一天,一月第一天、最后一天

DateTime dt = DateTime.Now;

//本月第一天时间

DateTime dt_First = dt.AddDays(-(dt.Day) + 1);

Label1.Text = dt_First.ToString("yyyy-MM-dd");

//将本月月数+1

DateTime dt2 = dt.AddMonths(1);

//本月最后一天时间

DateTime dt_Last = dt2.AddDays(-(dt.Day));

Label2.Text = dt_Last.ToString("yyyy-MM-dd");

int weeknow = Convert.ToInt32(System.DateTime.Now.DayOfWeek);

int daydiff = (-1) * weeknow + 1;

int dayadd = 7 - weeknow;


   //本周第一天

l[b]blBegin.Text
= System.DateTime.Now.AddDays(daydiff).ToString("yyyy-MM-dd");[/b]
//本周最后一天

lblEnd.Text = System.DateTime.Now.AddDays(dayadd).ToString("yyyy-MM-dd");

-----------------------------------------------------------

JS版: /article/7076344.html

<script language="javascript">

2 function selDate(y, m)

3 {

4 //输出当月1号字符串

5 document.form1.startDT.value=y+"-"+m+"-1";

6 //计算下个月的年份(y)、月份值(m)

7 if(m==12)

8 {

9 y++;

10 m=1;

11 }

12 else

13 {

14 m++;

15 }

16 //生成下个月1日的Date值

17 var dt=new Date(y, m-1, 1); //月份值0--11

18 //一天差值=86400000,将下月1日转换成数值,再相减,得上月最后一天Date值

19 var n=Date.parse(dt);

20 n -= 86400000;

21 var dt1=new Date(n);

22 //输出当月最后一天日期字符串

23 document.form1.stopDT.value=dt1.getYear()+"-"+(dt1.getMonth()+1)+"-"+dt1.getDate();

24 }

25 </script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: