由于當初產品需求不明確,導致要將一批老資料匯入到新表,但是遇到了一些麻煩,具體如下
例如用戶A 這么一條資料,其中開始時間和結束時間分別為
2020-4-16 10:05:23 - 2021-1-15 8:05:23
我想把這個時間段的資料以月為時間單位分成幾部分,不滿1個月的單獨為1條資料
例如
2020-4-16 10:05:23 - 2020-5-16 10:05:23
2020-5-16 10:05:23 - 2020-6-16 10:05:23
2020-6-16 10:05:23 - 2020-7-16 10:05:23
2020-7-16 10:05:23 - 2020-8-16 10:05:23
。。。。。。。。。。。。。。。。。。。。。。。
這里省略
。。。。。。。。。。。。。。。。。。。。。。。
2020-11-16 10:05:23 - 2020-12-16 10:05:23
2020-12-16 10:05:23 - 2021-1-15 8:05:23 最后1條因為不滿足1個月要這樣處理
請問這該怎么實作呢,最關鍵的是最后一條資料
uj5u.com熱心網友回復:
根據大然然道德帝的最高指示,我們只貼一段代碼,你看得懂就看,看不懂也不要看書查詢 yield return 何解,Aggregate是什么意思。(否則大然然道德帝又得說俺們鄙視新人,打擊新人,懷疑新人智商,讓新人去看書了)static void Main(string[] args)
{
DateTime start= DateTime.Parse("2020-4-16 10:05:23");
DateTime end = DateTime.Parse("2021-1-15 8:05:23");
var list = spliteByMonth(start, end).Aggregate((d1, d2) =>
{
Console.WriteLine($"{d1}\t{d2}");
return d2;
});
Console.ReadKey();
}
static IEnumerable<DateTime> spliteByMonth(DateTime start, DateTime end)
{
yield return start;
while (true)
{
start = start.AddMonths(1);
if (start < end)
yield return start;
else
break;
}
yield return end;
}
uj5u.com熱心網友回復:
也能寫成這樣nuget System.Reactive
同樣根據大然然道德帝的最高指示,你看得懂就看,看不懂。我不能說請看C#并發編程之回應式編程(Reactive Programming) 資料。因為大然然道德帝會說我們鄙視新人,欺負新人不懂什么叫并發回應式編程
uj5u.com熱心網友回復:
同樣根據大然然道德帝最高指示,我們也不能告訴你,上面兩個除了用的東西不一樣以外,其實他們都屬于同一種范式MapReduce(map 映射Reduce歸約),因為這樣會鄙視你沒文化。同樣我也不能告訴你,基于這種范式,如果你的專案資料量巨大,你可以使用spark去做分布式計算以提高性能。因為這樣很明顯說你是loster,根本就不配享有使用spark的權利
uj5u.com熱心網友回復:
這是什么玩意
uj5u.com熱心網友回復:
這是梗出處https://bbs.csdn.net/topics/396280201
評論區激戰
uj5u.com熱心網友回復:
大然然道德帝????轉載請註明出處,本文鏈接:https://www.uj5u.com/net/48049.html
標籤:C#
上一篇:大神能否解決下表單變化的問題
