Vandaag liep ik tegen een stukje code aan die 2 datums ging vergelijken, date1=9-12-2006 17:08:02 en date2=9-12-2006 17:08:02. Hieronder het stukje code:
Tot mijn verbazing was date 1 nieuwer dan date2. Na even uitzoeken kwam ik erachter dat er in date 1 nog 220 milliseconden was opgeslagen en in date2 zaten geen milliseconden. Een DateComparison in C# werkt blijkbaar met een precisie in milliseconden. Ik heb nu zelf een CompareDates geschreven die de milliseconden negeert zie hieronder:
Mijn functie werkt dus wel, maar ik vind de manier een beetje omslachtig. Zijn er misschien toch een Date comparsions mogelijk in .NET zonder milliseconden precisie?
C#:
1
2
3
4
| if (date1 > date2) { // date 1 is nieuwer } |
Tot mijn verbazing was date 1 nieuwer dan date2. Na even uitzoeken kwam ik erachter dat er in date 1 nog 220 milliseconden was opgeslagen en in date2 zaten geen milliseconden. Een DateComparison in C# werkt blijkbaar met een precisie in milliseconden. Ik heb nu zelf een CompareDates geschreven die de milliseconden negeert zie hieronder:
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
| private void button1_Click(object sender, EventArgs e) { DateTime x = new DateTime(2006, 12, 9, 17, 28, 10, 50); DateTime y = new DateTime(2006, 12, 9, 17, 28, 10, 0); bool result = (x > y); MessageBox.Show(result.ToString()); // geeft true zoals verwacht 50 ms > 0 ms result = (CompareDates(x, y) == 0); MessageBox.Show(result.ToString()); // geeft true datums zijn gelijk } private int CompareDates(DateTime d1, DateTime d2) { DateTime x = new DateTime(d1.Year, d1.Month, d1.Day, d1.Hour, d1.Minute, d1.Second); DateTime y = new DateTime(d2.Year, d2.Month, d2.Day, d2.Hour, d2.Minute, d2.Second); if (x < y) { return -1; } else if (x == y) { return 0; } else { return 1; } } |
Mijn functie werkt dus wel, maar ik vind de manier een beetje omslachtig. Zijn er misschien toch een Date comparsions mogelijk in .NET zonder milliseconden precisie?
[ Voor 0% gewijzigd door pjonk op 09-12-2006 19:05 . Reden: Wel even die enorm slechte fout eruit halen ]
It’s nice to be important but it’s more important to be nice