c # - Werte der Rundungsdauer auf die nächste Viertelstunde herunter

8

Hat jemand eine gute Möglichkeit, down eine Zahl zwischen 0 und 59 auf die nächsten 15 zu runden. Ich benutze C # 3.5.

Also ...

  • 1 wäre 0
  • 29 wäre 15
  • 30 wäre 30

etc usw.

Vielen Dank.

    
Peanut 19.02.2010, 00:02
quelle

6 Antworten

21

x = x - (x % 15) wäre eine Lösung, die nicht auf Ganzzahldivision angewiesen ist.

    
Tanzelax 19.02.2010, 00:10
quelle
10

Als Erweiterungsmethode für datetime

%Vor%

zu verwenden

%Vor%     
johnc 19.02.2010 00:09
quelle
5

Wie wäre es mit (x / 15) * 15?

    
No Refunds No Returns 19.02.2010 00:04
quelle
4

Ich kenne keinen Bibliotheksaufruf dafür (wie .Rund (...)), vielleicht und Erweiterungsmethode würde gut passen?

Ich würde für eine einfache IF-Anweisung gehen.

Wenn Geschwindigkeit ein Problem ist, versuchen Sie eine erweiterte switch-Anweisung für jeden Wert. Verwenden Sie Komponententests, um zu sehen, was schneller ist, wenn das ein Problem ist.

Um abgeschlossen zu sein ...

%Vor%

// ...

%Vor%     
Paul Kohler 19.02.2010 00:12
quelle
3

Sie können Ganzzahldivision verwenden -

%Vor%     
Reed Copsey 19.02.2010 00:05
quelle
0

Hier kommt der Modulo-Operator sehr praktisch zum Einsatz

%Vor%     
Fadrian Sudaman 19.02.2010 00:17
quelle

Tags und Links