簡體   English   中英

Watin:獲取日期時間並執行計算

[英]Watin : Get Datetime and perform calculation

我有一個文本字段,其日期格式為“ 12/23/2010”。我是否可以使用watin來獲取數字23,即從文本字段中獲取數字;我將像這樣使用它。

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);

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

您應該使用DateTime.ParseDateTime.TryParseDateTime.ParseExactDateTime.TryParseExact將文本解析為DateTime

如果解析失敗表明某處代碼失敗(鑒於這是測試,則可能是這種情況),我懷疑DateTime.ParseExact是最合適的方法,提供了預期的格式,區域性等。

如果您想要從日期中減去2天,我會這樣做:

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

如果您確定所擁有的字符串是有效日期,那么當然可以。 如果可能不是,那么您應該執行Skeet建議的操作,即先使用try解析,檢查返回值是否為true,如果返回,則執行其余操作,否則返回其余錯誤,否則發送錯誤信息。

考慮寫作

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

嘗試以字符串形式獲取日期值將其轉換為datetime並使用AddDays,我們可以使用負值或正值並將其插入文本框

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

就是這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM