如何计算给定两段日期间的月份个数??
如:2011.4.26--->2013.4.24新手求help!!懂的指点下!谢谢!!!!日期,月份,个数

解决方案 »

  1.   


    Convert.toDateTime("2013-04-24")-Convert.toDateTime("2011-04-26")这样子减吗?减出来得到的是月份还是什么?
      

  2.   

            DateTime dt1 = DateTime.Now;
            DateTime dt2 = DateTime.Now.AddDays(1);
            TimeSpan ts = dt2 - dt1;
            Response.Write("dt2与dt1相关"+ts.Days.ToString()+"天");
      

  3.   

                            DateTime dt1 = Convert.ToDateTime("2011-04-26");
                            DateTime dt2 = Convert.ToDateTime("2013-04-24");
                            int Month = (dt2.Year - dt1.Year) * 12 + (dt2.Month - dt1.Month);
      

  4.   

    int m = new TimeSpan(dt1.Tick, dt2.Tick).Months
      

  5.   


    int m=new TimeSpan(dt2.Ticks,dt1.Ticks).Months; 在我这用不了  为什么啊
      

  6.   

    后面那Months出不来的!有这东东吗
      

  7.   

    我之前也是这样写,不过后来发现这样得到的不够准确!
    2013-04-26-->2011-04-24  相差25个月;
    2013-04-20-->2011-04-24  相差23个月;
    2013-03-26-->2011-04-24  相差23个月;
    2013-03-22-->2011-04-24  相差22个月;
    2013-05-26-->2011-04-24  相差26个月;
    2013-05-21-->2011-04-24  相差24个月;
      

  8.   

    private int 实岁(DateTime 生日, DateTime 预测日期)
            {
                int 实岁 = 预测日期.Year - 生日.Year, 月差 = 预测日期.Month - 生日.Month, 日差 = 预测日期.Day - 生日.Day, 时差 = 预测日期.Hour - 生日.Hour, 分差 = 预测日期.Minute - 生日.Minute;
                if (月差 < 0) { 实岁--; } 
                if (月差 == 0 && 日差 < 0) { 实岁--; }
                if (月差 == 0 && 日差 == 0 && 时差 < 0) { 实岁--; }
                if (月差 == 0 && 日差 == 0 && 时差 == 0 && 分差 < 0) { 实岁--; }
                return 实岁;
            } 
    似乎类似这个道理?!
      

  9.   

    嗯 ,差不多吧!之前我全部用if else 来实现我要的功能,就是感觉这样写不是很好,感觉别人应该有更好更妙的解决方法,所以就来找找看!学习学习!
      

  10.   

    刚好涉及到写了一个初步:for (int 始年 = ((DateTime)数据[1]).Year, 现年 = DateTime.Now.Year; 始年 <= 现年; 始年++)
         for (int 始月 = ((DateTime)数据[1]).Month, 现月 = DateTime.Now.Month; 始月 < 现月; 始月++) 历月++;
    if (((DateTime)行数据[1]).Day > DateTime.Now.Day) 历月--;
      

  11.   


    int 历 = 0, 值 = 12; DateTime 始值 = new DateTime(2011, 4, 26), 终值 = new DateTime(2013, 4, 24);
                    for (int 始值年 = 始值.Year, 终值年 = 终值.Year; 始值年 <= 终值年; 始值年++)
                        for (int 月数 = 1; 月数 <= 值; 月数++)
                        {
                            if (始值年 == 终值年) 值 = 终值.Month;
                            历++;
                        }
                    if (始值.Day > 终值.Day) 历--;
                    历 = 历 - 始值.Month;23月int 历 = 0, 值 = 12; DateTime 始值 = new DateTime(2011, 4, 24), 终值 = new DateTime(2013, 4, 24);
                    for (int 始值年 = 始值.Year, 终值年 = 终值.Year; 始值年 <= 终值年; 始值年++)
                        for (int 月数 = 1; 月数 <= 值; 月数++)
                        {
                            if (始值年 == 终值年) 值 = 终值.Month;
                            历++;
                        }
                    if (始值.Day > 终值.Day) 历--;
                    历 = 历 - 始值.Month;24月
    以上初步测试.