2013-06-03 54 views
2

所以我试图在readOnly文本框中显示消息,使用时间和日期,尽管我遇到了一些问题。它显示消息是在325天前发送的,当时应该是1分钟前。有人能帮助告诉我我做错了什么吗?c#中已经过去了吗?

string[] date; 
string[] messageArray = 
    File.ReadAllLines(Server.MapPath("~") + "/App_Data/messages.txt"); 

for (int i = 0; i < messageArray.Length; i++) 
{ 
     date = messageArray[i].Split(' '); 
     DateTime date1 = DateTime.Now; 
     DateTime date2 = Convert.ToDateTime(messageArray[0]); 
     TimeSpan timeDifference = date1.Subtract(date2); 
     string formattedTime = "Sent " + timeDifference.Days + " days, " + 
     timeDifference.Hours + " hour/s," + 
     " and " + timeDifference.Minutes + " mins ago"; 

     File.AppendAllText(Server.MapPath("~") + 
       "/App_Data/messages.txt", "\n" + formattedTime + "\n"); 
     File.AppendAllText(Server.MapPath("~") + 
       "/App_Data/messages.txt", sendMessageTextBox.Text + 
       System.Environment.NewLine); 

} 
+1

请出示messageArray [的'价值0]'。 (你并不真的需要其余的样本......) –

+0

注意:格式化值有'String.Format',它看起来比'+'的序列更好。 –

回答

6

运行下面

 DateTime date2 = DateTime.Now; 
     Thread.Sleep(1000); 
     DateTime date1 = DateTime.Now; 

     TimeSpan timeDifference = date1.Subtract(date2); 
     Console.WriteLine(timeDifference.Seconds); 

1

打印显示输出messageArray[0]价值,看它是否包含你认为它包含

+2

要以秒为单位表示净流逝时间,请使用timeDifference.TotalSeconds(总时间以秒为单位),而不是timeDifference.Seconds(它是总时间的秒分量)。 – Guy