Asp.net C#通过起始日期计算月份差

5 篇文章 0 订阅

可以通过穿进去的起始时间,返回月份数;

如果天数不够一个月则不计入统计及0

下面为方法的代码

 
public int GetMonth(DateTime dtbegin,DateTime dtend)
    {
        int Month = 0;
     
      //  DateTime dtbegin = Convert.ToDateTime(txtworkday.Text.ToString()); //起始时间
      //  DateTime dtend = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));  //结束时间

        if ((dtend.Year - dtbegin.Year) == 0)
        {
            if (dtend.Day - dtbegin.Day > 0)
            {
                Month = dtend.Month - dtbegin.Month;
            }
            else
            {
                Month = dtend.Month - dtbegin.Month-1;
            }
            
        }
        if ((dtend.Year - dtbegin.Year) >= 1)
        {
            if (dtend.Month - dtbegin.Month < 0)
            {
                if (dtend.Day - dtbegin.Day > 0)
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 + dtend.Month - dtbegin.Month;
                }
                else
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 + dtend.Month - dtbegin.Month - 1;
                }
                
            }
            else if ((dtend.Month - dtbegin.Month == 0) && (dtend.Year - dtbegin.Year >= 1))
            {
                if (dtend.Day - dtbegin.Day > 0)
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 ;
                }
                else
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 - 1;
                }
            }
            else if ((dtend.Month - dtbegin.Month > 0) && (dtend.Year - dtbegin.Year >= 1))
            {
                if (dtend.Day - dtbegin.Day > 0)
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 + dtend.Month - dtbegin.Month ;
                }
                else
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 + dtend.Month - dtbegin.Month - 1;
                }
            }
            else
            {
                if (dtend.Day - dtbegin.Day > 0)
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 + dtend.Month - dtbegin.Month + 1;
                }
                else
                {
                    Month = (dtend.Year - dtbegin.Year) * 12 + dtend.Month - dtbegin.Month + 1 - 1;
                }

            }
        }
        return Month;
    }


引用的部分可以这样写成自己想要的

  DateTime workd = DateTime.Parse(txtworkday.Text.ToString());//startdate
                DateTime nowd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); //enddate
                TimeSpan ts = nowd - workd;
                int getMonth = GetMonth(workd, nowd);
                int yeardiff = getMonth / 12;//系統會用到
                int monthdiff = (getMonth - 12 * yeardiff);//系統會用到
                int daydiff = (nowd.Day - workd.Day);

               


                string timespan = "相差:" + yeardiff.ToString() + "年" + monthdiff.ToString() + "月"
                                   + daydiff.ToString() + "天" + getMonth;



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cheug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值