Watin:获取日期时间并执行计算

时间:2011-02-28 14:52:30

标签: c# watin

我有一个日期格式为“12/23/2010”的文本字段。我在那里使用watin获取数字23,即从textfield获取数字;我将使用它。

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

这可能吗?或者我应该采用其他方式。请用户插入数据。

4 个答案:

答案 0 :(得分:5)

您应该使用DateTime.ParseDateTime.TryParseDateTime.ParseExactDateTime.TryParseExact来解析文本到DateTime

如果解析失败表明代码中的某个地方出现了故障(这可能是这里的情况,考虑到这是一个测试),我怀疑DateTime.ParseExact是最合适的方法,提供了预期的格式,文化等。

答案 1 :(得分:2)

如果你想要的是从日期减去2天,我会这样做:

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

当然,如果您确定您拥有的字符串是有效日期。如果它可能不是,那么你应该做Skeet推荐的,首先使用try解析,检查返回值是否为true,如果是,则执行其余操作,如果不是,则发送错误消息。

答案 2 :(得分: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());

答案 3 :(得分: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());

感谢