मैं उचित गोल करने की व्यवस्था की तलाश में हूं लेकिन मुझे लगता है कि मुझे जो कुछ भी चाहिए वह बिल्कुल ठीक नहीं लगता है।डेटटाइम राउंड अप और डाउन
मुझे अलग-अलग गोल करने और गोल करने की आवश्यकता है और मुझे पहले से ही गोल होने पर मामले के लिए भी खाते की आवश्यकता है।
मैं निम्नलिखित राउंडिंग की जरूरत स्पष्ट रूप से निकटतम 10 मिनट होने
5:00 -> RoundDown() -> 5:00
5:04 -> RoundDown() -> 5:00
5:09 -> RoundDown() -> 5:00
5:10 -> RoundDown() -> 5:10
4:00 -> RoundUp() -> 4:00
4:50 -> RoundUp() -> 4:50
4:51 -> RoundUp() -> 5:00
4:56 -> RoundUp() -> 5:00
मूल रूप से मैं इसे राउंडअप() या ROUNDDOWN (की जरूरत है) लेकिन यह भी समय अछूता छोड़ देना चाहिए कि वह पहले से एक से अधिक में है 10 मिनट का। > 04:50:00 - -> राउंडअप() -> 4:50
करता है इसके अलावा, मैं वे राउंडिंग प्रक्रिया पर कोई प्रभाव नहीं
4:50:45 है के लिए किसी भी सेकंड काट-छांट करना चाहते हैं किसी को भी इसे पूरा करने के लिए कोई आसान कोड है।
मुझे यह कोड कहीं और मिला लेकिन यह 5:00 राउंडअप() -> 5:10 को बरकरार रखने के बजाए गोल करता है क्योंकि यह पहले से ही 10 में से एक है और उसे गोल करने की आवश्यकता नहीं है। इसके अलावा मुझे यकीन नहीं है कि
public static DateTime RoundDateTime(this DateTime dt, int minutes, RoundingDirection direction)
{
TimeSpan t;
switch (direction)
{
case RoundingDirection.Up:
t = (dt.Subtract(DateTime.MinValue)).Add(new TimeSpan(0, minutes, 0)); break;
case RoundingDirection.Down:
t = (dt.Subtract(DateTime.MinValue)); break;
default:
t = (dt.Subtract(DateTime.MinValue)).Add(new TimeSpan(0, minutes/2, 0)); break;
}
return DateTime.MinValue.Add(new TimeSpan(0,
(((int)t.TotalMinutes)/minutes) * minutes, 0));
}
आशा है कि कोई व्यक्ति मेरे लिए यह काम करने के लिए उस विधि को संपादित कर सकता है। धन्यवाद
ठीक है। तो आपके पास वहां कोडिंग कोड है। आप ऐसा करने के लिए इसे क्यों संशोधित नहीं कर रहे हैं जो आपको करने की ज़रूरत है? –
क्या यह काम करेगा? http://stackoverflow.com/questions/7029353/c-sharp-round-up-time-to-nearest-x-minutes – comecme
आपका राउंडिंग नियम अस्पष्ट है। आप 5:09 से 5:00 बजे तक 4:56 से 5:00 बजे तक जाते हैं। – Rawling