-1
我正在給日期時間值列表分配時間。我需要爲每個日期時間值分配一段時間的時間。通過增加時間範圍在列表中分配時間到日期時間變量
TimeSpan ts = DateTime.Now.TimeOfDay;
List<DateTime> lstdt = dates.Where(d => d.Date == tpl.Item1).Select(d => d.Date + ts);
我正在給日期時間值列表分配時間。我需要爲每個日期時間值分配一段時間的時間。通過增加時間範圍在列表中分配時間到日期時間變量
TimeSpan ts = DateTime.Now.TimeOfDay;
List<DateTime> lstdt = dates.Where(d => d.Date == tpl.Item1).Select(d => d.Date + ts);
您可以創建添加TimeSpan
乘以一個int
,然後使用在Select
這樣
public static DateTime AddTimeSpan(DateTime baseDateTime, TimeSpan ts, int multiplier)
{
var ticks = ts.Ticks;
var duration = TimeSpan.FromTicks(ticks * multiplier);
return baseDateTime.Add(duration);
}
//and use in select
TimeSpan ts = new TimeSpan(2, 00, 0);
List<DateTime> lstdt = dates.Select((d, idx) => AddTimeSpan(d, ts, idx + 1)).ToList();
例
var datetime = new DateTime(2015, 10, 4, 9, 30, 00); //04/10/2015 09:30:00
List<DateTime> dates = new List<DateTime> { datetime, datetime, datetime };
TimeSpan ts = new TimeSpan(2, 00, 0);
List<DateTime> lstdt = dates.Select((d, idx) => AddTimeSpan(d, ts, idx + 1)).ToList();
//=> produces { 04/10/2015 11:30:00, 04/10/2015 13:30:00, 04/10/2015 15:30:00 }
List<DateTime> lstdt = dates.Where(d => d.Date == tpl.Item1)
.Select(d => d.Date.AddHours(ts.Hours));
,或者如果你需要一個方法添加整個時間,而不僅僅是小時:
List<DateTime> lstdt = dates.Where(d => d.Date == tpl.Item1)
.Select(d => d.Date.AddTicks(ts.Ticks));
你的意思是假設你的收藏中有符合這些標準的'n'日期,所以你想在每件物品上增加一些時間?你能舉一些例子嗎? –
那麼你發佈的代碼有什麼問題?它拋出異常嗎?它會返回意外的值嗎?你可以發佈一些樣本輸入,當前的輸出可能是錯誤的和預期的輸出? –
@RahulSingh:你說得對。 可以說lstdt具有以下 2015年4月10日00:00:00 2015年4月10日00:00:00 現在我需要的是 2015年4月10日09:00:00 04-10 -2015 11:00:00 – IamP