hutool 获取某月最后一天_取某月的最后一天的方法

经常我们遇到这样的问题:一是,某月的最后一天是 29,30,还是31 呢?。二是,返回某月的最后一天。这个问题如果,不留神,SQL中有关日期的语句,包含错误的日期,那么就要出错,那么这个怎么解决呢?请参照以下代码。

public string MonthMaxDay(long Year,long Month,int Flag)

{

//获取月、日

string  Value,Svalue ="";DateTime  Dt;int Day;

if(Month==0)

{

Month=Month+1;

Year=Year-1;

}

if (Flag>0)

{

Svalue=Year.ToString("0000")+Month.ToString("00")+"28";

for(Day=29;Day<=31;Day++)

{

try

{

Value= Month.ToString("00")+"/" + Day  +"/"+Year.ToString("0000");

Dt=Convert.ToDateTime(Value);

Value=Year.ToString("0000")+Month.ToString("00")+Day ;

Svalue=Value;

}

catch(Exception ErrDis)

{

ErrDiscroption=ErrDis.ToString();

goto ErrHd;

}

}

}

else

{

Svalue=Year.ToString("0000")+Month.ToString("00")+"01";

}

ErrHd:

return Svalue;

}

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

SQL SERVER中

SELECT DATEADD(D,-1,DATEADD(M,1,CAST(@YEAR AS NVARCHAR(4))+'.'+CAST(@MONTH AS NVARCHAR(2))+'.01'))

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

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

///

/// 获得某月最后一天的数值

///  Returns:最后一天的数值

///

/// 需要提取的时间

/// 最后一天的数值

public int GetDay(DateTime p_dTime)

{

int intResult = 0;

switch (p_dTime.Month.ToString())

{

case "1":

case "3":

case "5":

case "7":

case "8":

case "10":

case "12":

intResult = 31;

break;

case "4":

case "6":

case "9":

case "11":

intResult = 30;

break;

case "2":

if ((Convert.ToInt16(p_dTime.Year) % 4 == 0) &&

(Convert.ToInt16(p_dTime.Year) % 100 != 0) ||

(Convert.ToInt16(p_dTime.Year) % 400 == 0))

intResult = 29;

else

intResult = 28;

break;

}

return intResult;

}

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

DateTime dt = System.DateTime.Now;//获得当前日期

dt = dt.AddDays(1 - dt.Day);        //得到当月的第一天日期

dt = (dt.AddMonths(1)).AddDays(-1);      //得到当月的最后一天日期

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值