我可以通过每次添加30分钟来使用for循环,同时将时间添加到不同的行
本文关键字:添加 时间 for 可以通过 30分钟 循环 | 更新日期: 2023-09-27 18:19:41
我有10行,其中有2列InTime
和OutTime
。上一个条目的OutTime
是下一个条目的InTime
和下一个条目中的OutTime
应该比以前的OutTime
条目多30分钟。我正在尝试以下代码:
TimeSpan InTime = TimeSpan.Parse("08:00");
TimeSpan t2 = TimeSpan.Parse("00:30:00");
TimeSpan OutTime = InTime.Add(t2);
有没有一种方法可以在C#中使用for循环来实现这一点?
您应该发布一个您期望的表外观的示例。。。此外,你想做的事情背后的一点背景也会有很大的帮助。然而,我猜你想要一张看起来像这样的桌子:
InTime | OutTime
-------|--------
8:00 | 8:30
8:30 | 9:00
9:00 | 9:30
9:30 | 10:00
10:00 | 10:30
10:30 | 11:00
etc. | etc.
如果是这种情况,那么您可以制作一个非常简单的for
循环来完成:
List<MyClass> rows = new List<MyClass>();
// Change the 10 in the following line to increase the number of rows.
for(double i = 0; i < 10; i++)
{
TimeSpan inTime = TimeSpan.FromHours(8 + i / 2);
TimeSpan outTime = TimeSpan.FromHours(8 + (i + 1) / 2);
rows.Add(new MyClass(inTime, outTime));
}
试试这个代码。您可以设置开始时间、差异和条目数量,它会为您生成它们。第二个循环只是为了测试,所以你可以在发完短信后删除它。词条保存在词典中。
TimeSpan StartTime = TimeSpan.FromHours(8);
int Difference = 30; //In minutes.
int EntriesCount = 10;
Dictionary<TimeSpan, TimeSpan> Entries = new Dictionary<TimeSpan, TimeSpan>();
for(int i = 0; i < EntriesCount; i++){
Entries.Add(StartTime.Add(TimeSpan.FromMinutes(Difference * i)),
StartTime.Add(TimeSpan.FromMinutes(Difference * i + Difference)));
}
foreach(var e in Entries){
Console.WriteLine("In: " + e.Key + " - Out: " + e.Value);
}
这是一个小提琴
根据Racil Hilan 发布的评论,以下代码对我有效
TimeSpan StartTime = TimeSpan.FromHours(5);
int Difference = 15;
int EntriesCount = count;
Dictionary<TimeSpan, TimeSpan> Entries = new Dictionary<TimeSpan, TimeSpan>();
for (int TableRowId = 0; TableRowId <= count - 1; TableRowId++)
{
string inTime = "//*[@id='INTIME" + TableRowId + "']";
string outTime = "//*[@id='OUTTIME" + ableRowId + "']";
test.Type(inTime, StartTime.Add(TimeSpan.FromMinutes(Difference * TableRowId)).ToString("hh'':mm"));
test.Type(outTime, StartTime.Add(TimeSpan.FromMinutes(Difference * TableRowId + Difference)).ToString("hh'':mm"));
}