2011-02-28 17 views
0

我有一個格式爲「12/23/2010」的日期的textfield。是在那裏得到數字23使用watin ie從文本字段中獲取數字;我是會這樣使用它。Watin:獲取日期時間並執行計算

1.Get datetime 12/23/2010 and get number '23' 
2.substract 2 from 23 and store it somewhere[ie: 23 - 2 = 21] 
3.Insert the new datetime number [ie:12/21/2010 ] 

string myDate = browser.TextField(Find.ByName("myTextField")).Value; 
DateTime time = = new DateTime(); 
time2 = time - 2; 
browser.TextField(Find.ByName("myTextField")).TypeText(time2); 

這是可能的嗎?或者我應該以另一種方式尋找。請求用戶插入數據。

+0

你爲什麼試圖做到這一點?用戶插入日期並修改它?我認爲用戶插入它會更容易。 – JAiro 2011-02-28 14:56:04

回答

0

嘗試獲得的日期值作爲字符串 將其轉換爲datetime和使用,我們可以使用正值或負值 AddDays並將其插入文本框

string myDate = this.Elements.textfield.Value; 
DateTime dt = Convert.ToDateTime(myDate); 
DateTime dtNew = dt.AddDays(-3); 
this.Elements.ChangeDateActive.TypeText(dtNew.ToShortDateString()); 

就是這樣感謝

5

你應該使用DateTime.ParseDateTime.TryParseDateTime.ParseExactDateTime.TryParseExact從文本解析到一個DateTime

如果未能解析表示某處的代碼(,因爲它是一個測試,可能是這裏的情況),我懷疑DateTime.ParseExact是最合適的方法,提供預期的格式失敗,文化等

0

考慮寫

DateTime dt = Convert.ToDateTime(myDate); 
DateTime dtNew = new DateTime(dt.Year, dt.Month, dt.Day - 2); 
browser.TextField(Find.ByName("myTextField")).TypeText(dtNew.ToShortDateString()); 
2

,如果你想要的是從日期減去2天,我會做這樣的:

DateTime dt = DateTime.Parse(myDate)-TimeSpan.FromDays(2); 
//its steps 1,2 & 3 in one easy to read line :) 

這是當然如果你確定你的字符串是一個有效的日期。如果它不是,那麼你應該做什麼Skeet建議,這是使用第一次嘗試解析,檢查返回值是否爲真,如果是,那麼做其餘的,如果不是,發送一個錯誤信息。