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

获取一个月份中最早的一天和最后的一天。在C#的DateTime类中,已经提供了现成的函数,下面分别用两个简单的函数表示:

 

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;

   //本周第一天
        lblBegin.Text = System.DateTime.Now.AddDays(daydiff).ToString("yyyy-MM-dd");

       //本周最后一天
        lblEnd.Text = System.DateTime.Now.AddDays(dayadd).ToString("yyyy-MM-dd");

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

JS版: http://www.cnblogs.com/wangsj/archive/2010/02/14/1668288.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-11);  //月份值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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值