dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1314 | Anzahl registrierter User: 1267 | Besucher online: 36
Hauptmenü
Home
Snippet Wettbewerb
Top Ten
Zufälliger Snippet
Vista Gadget
T-Shirts für Geeks
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social
Facebook
Twitter
RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss Delphi.NET
Rss ASP.NET
Werbung
Alice DSL Flatrate

Partner
Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

DateTime Runden


Autor: Boas Enkler
Sprache: C#
Bewertung: 7,4
(1 Bewertung)

Anzahl der Aufrufe: 847
  

Beschreibung:

Rundet eine Datum-Zeit angaben auf ein angegebenes Intervall (15 Minuten,Halbe Stunde, usw...)

Abgelegt unter: DateTime, runden, Viertelstunde, 15, 30, 45.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  /// <summary>
        /// The Rounding types
        /// </summary>
        public enum RoundType
        {
            /// <summary>
            /// Complete Hour
            /// </summary>
            Hour = 60,

            /// <summary>
            /// Half an Hour
            /// </summary>
            HalfHour = 30,

            /// <summary>
            /// 15 Miniutes
            /// </summary>
            QuaterHour = 15,

        }




        /// <summary>
        /// Roundes the given DateTime to the given Minutes Pattern (15,30,60...)
        /// </summary>
        /// <param name="source">DateTime which should be rounded</param>
        /// <param name="type">The Roundtype</param>
        public static System.DateTime Round(this System.DateTime source, RoundType type)
        {

            System.DateTime result = source;

            int minutes = Convert.ToInt32(type);
            int modulo;

            Math.DivRem(source.Minute, minutes, out modulo);


            if (modulo > 0)
            {
                if (modulo >= (minutes / 2))
                {
                    //Näher am oberen ende => nach utnen laufen
                    result = source.AddMinutes(minutes - modulo);
                }
                else
                {
                    //Wir sind näher am unteren ende => bis zur unteren basis laufen
                    result = source.AddMinutes(modulo * -1);

                }


                result = result.AddSeconds(source.Second * -1);
            }

            return result;
        }


Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.