Czy istnieje jakiś matematyczny sposób na przycięcie DateTime do dokładnej godziny, dnia lub tak? Podobne do rundy od dziesiętnej do int.Wycinanie/zaokrąglanie DataTime do całości, np. Godzina/dzień?
Period.Day
Jeśli oryginalna wartość była 2011-01-01 13:00:00
, kończy się w 2011-01-01 00:00:00
jeśli Period.Hour
Jeśli oryginalna wartość była 2011-03-11 13:32:00
, kończy się w 2011-03-11 13:00:00
myślę o coś jak poniżej. To oczywiście działa dobrze, ale ta -platka jest później iterowana. Lepiej, gdybym mógł obliczyć bezpośrednio w tej iteracji zamiast własnej. Ale someType nie można umieścić w tej iteracji (zależy to od someType).
if (someType == Period.Day)
range.ForEach(d => d.time = new DateTime(d.time.Year, d.time.Month, d.time.Day,0,0,0));
if (someType == Period.Hour)
range.ForEach(d => d.time = new DateTime(d.time.Year, d.time.Month, d.time.Day, d.time.Hour, 0, 0));
Twoje przykłady nie zaokrąglić do najbliższego.Obcinają/zaokrąglają. – CodesInChaos
Zastąpić 'ForEach' za pomocą' Select'? –
@CodeInChaos Masz całkowitą rację. Zmienię tytuł, ponieważ jest zwodniczy. – Independent