繁体   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