解决方案 »

  1.   


      var ComputeYear = function (dateStr, yearNum) {            var date = new Date(dateStr);
                var month = parseInt((yearNum - parseInt(yearNum)) * 12);
                //天的计算同理,但是在计算天的时候如果只按30或其他都是不精确的。。看你合同的约定吧。
                //另外,在Js中就算你只进行年的计算也可能会改动月日的。因为有闰年,今年是闰年。。
                date.setFullYear(date.getFullYear() + parseInt(yearNum), date.getMonth() + month);            alert(date.getFullYear() + "年" + date.getMonth() + "月" + date.getDay() + "日");
            }
      

  2.   

    调用ComputeYear('2025-05-22', 2.5);
      

  3.   

    大神 你这个代码测试过吗 为什么我alert的日期是0日
      

  4.   

    一楼的代码有局限性 ComputeYear('2025-05-22', 2.5); 这个确实能弹出来对的日期   但是我的日期是选择的  有时候day 和month居然会变成0 
      

  5.   

      public DateTime getyear(DateTime dt, double yearNum)
            {
                int Hour =Convert.ToInt16(yearNum * 365 * 24);
                TimeSpan timeSpan = new TimeSpan(Hour, 0,0);
                DateTime now = Convert.ToDateTime(dateTimePicker2.Value.ToString());
                DateTime first = now - timeSpan;
                return first;
            }