2016-02-12 66 views
-3

的当前日期和日期之间的差异我正根据数据库中的数据生成Excel表。我有一行给出日期[DATL](字段名称)。现在我想要生成一行,其中给出了DATL与当前日期之间的差异。该日期[DATL]是通过使用下面的方法[ExcelDate]转换成特定的格式生成的。我需要的是一种方法是给出当前日期和DATL之间的区别。 在此先感谢..日期时间来自表

XElement TicketsXml = new XElement(
    "Tickets", 
    from x in ticketQry 
    select new XElement(
     "Tickets", 
     new XElement("AppName", x.APP_NAME), 
     new XElement("SubmittedBy", x.PERS), 
     new XElement("TicketOwner", x.PERA), 
     new XElement("TicketDate", ExcelDate(x.DATL)) 
); 

private string ExcelDate(Object thisObj) 
{ 
    String result = ""; 
    try 
    { 
      DateTime thisDT = (DateTime)thisObj; 
      result = String.Format("{0}-{1}-{2}T00:00:00.000", 
       thisDT.Year, 
       thisDT.Month.ToString("d2"), 
       thisDT.Day.ToString("d2")); 

      if (result == "1-01-01T00:00:00.000") 
      { 
       result = ""; 
      } 
    } 
    catch (Exception ex) 
    { 
      var msg = ex.Message; 
      //Do Nothing  
    } 

    return result; 
} 

private string DateDiff(Object thisObj) 
{ 
    DateTime dt = DateTime.Now; 

    String result = ""; 

    try 
    { 
     DateTime thisDT = (DateTime)thisObj; 
     result = String.Format("{0}-{1}-{2}T00:00:00.000", 
      thisDT.Year, 
      thisDT.Month.ToString("d2"), 
      thisDT.Day.ToString("d2")); 

     if (result == "1-01-01T00:00:00.000") 
     { 
      result = ""; 
     } 
    } 
    catch (Exception ex) 
    { 
     var msg = ex.Message; 
     //Do Nothing  
    } 

    //(getting error here dont know how to capture that result into this) 
    DateTime olddate = new DateTime(result); 
    TimeSpan ts = dt - oldDate; 

    int differenceInDays = ts.Days; 
} 
+0

'deoending'应视此阅读'..?' – MethodMan

+0

什么是DATL?... –

+0

其使用通过代码调试步骤和字段名 – vana

回答

1

只要是明确的,这个假设thisDT总是前现在。如果不是这种情况,则需要确定哪个日期晚一些,并从较晚的日期中减去较早的日期。

private string DateDiff(Object thisObj) 
{ 
    String result = ""; 
    try 
    { 
     DateTime thisDT = (DateTime)thisObj; 
     TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - thisDT.Ticks); 
     // Now just format the TimeSpan how you want into result 
     result = ts.Days.ToString() + " Days"; 
    } 
    catch (Exception ex) 
    { 
     var msg = ex.Message; 
     //Do Nothing  
    } 
    return result; 
} 
+0

非常感谢它的工作! – vana

+0

@vana - 如果凯文回答了您的问题,请将答案标记为已接受。 –

+0

@ roryap我已经标记了它,但它没有显示(它说我需要获得15声望) – vana