给定一个时间,假设'20080406',如何得到上个朋的起止时间'20080301'-20080331,如果是'20080123',得到的是20071201-20071231如何实现呀!!!

解决方案 »

  1.   

      比如现在时间是20080422          
    string v = DateTime.Now.AddMonths(-1).ToString("yyyyMM01"); //20070301另外,不知道你想要什么。
      

  2.   

    DateTime dt = DateTime.Now;
    dt = dt.AddMonths(-1);
    int days=DateTime.DaysInMonth(dt.Year, dt.Month);
    string strR = dt.ToString("yyyyMM");
    strR = strR + "01-" + strR + days.ToString();//可能是因为太简单了吧:) 当玩笑看吧
      

  3.   

    string strTemp = "20080406";            
    string strRet = DateTime.ParseExact(strTemp, "yyyyMMdd", null).AddMonths(-1).ToString("yyyyMM01") 
                    + "-" 
                    + DateTime.ParseExact(strTemp.Substring(0,6) + "01", "yyyyMMdd", null).AddDays(-1).ToString("yyyyMMdd");
      

  4.   

    这样写比上面好看点
    String strTemp = "20080406";
    DateTime dtTemp = DateTime.ParseExact(strTemp.Substring(0, 6) + "01", "yyyyMMdd", null);
    String strRet = String.Format("{0}-{1}", dtTemp.AddMonths(-1).ToString("yyyyMMdd"), dtTemp.AddDays(-1).ToString("yyyyMMdd"));