Bei 7 Tagen 1 Woche

DJCueForce

Mitglied
Hallo,

Ich weiß nicht wie ich mich ausdrücken soll. Ich versuche mein bestes :D

Also mein problem ist folgendes.
Ich Porgrammiere derzeit ein Chartsystem für einen bekannten.
Diese läuft über MySQL da diese auch auf seiner Webseite nacher angezeigt werden soll. Zur verwaltung wollte er gerne eine art Programm haben.
Das Programm an sich ist auch soweit fertig. Login-Bereich und so weiter.
Nun lese ich mittels meinem reader den Timestamp aus meiner Tabelle aus. (Eintragungsdatum).
Diesen Timestamp lasse ich mittels einer Function umrechnen und in meinem Listviwe in der spalte woche auslesen.
Nun möchte ich gerne das er nich das Datum anzeigt, sondern erreichnet wieviele Wochen der Song schon dabei ist. also ein kleines beispiel:
Eingetragen am: 12.06.2010 > Heute ist angeblich 26.06.2010 also were der Song nun 2 Wochen dabei.
Also eigentlich in 7ner schritten Rechnen bis er schon über der zahl ist oder so.... nur wie?

Würde mich über eure hilfe freuen.
Hoffe es ist verständlich ausgedrückt!

MFG
Robin Konerding
 

Alexander Schuc

crazy-weasel
Hallo!

Wenn du deine 2 Daten (also seit wann der Song dabei ist, und das aktuelle Datum) in einem DateTime Objekt hast, ists ganz einfach:

C#:
DateTime since = DateTime.Parse("12.06.2010");
DateTime now = DateTime.Parse("26.06.2010");
// diese 2 kommen dann aus der DB bzw. Heute ist DateTime.Now

TimeSpan diff = now - since;

int weeks = ((int)diff.TotalDays) / 7;

Console.WriteLine("Song ist seit {0} Wochen in der Liste..", weeks);

Hier mal als kleines Beispiel. Die Daten hab ich via Parse Methode reingeholt, du hast dann ja die Daten aus der DB.

lg,..
 

DJCueForce

Mitglied
Vielen dank! Genau was ich gesucht habt, zwar C# aber kann man ja umschreiben. Habs auch getan. Mein code schaut nun so aus:

Code:
cmd = New MySqlCommand("SELECT * FROM mt_hitparade", conn)
        conn.Open()
        reader = cmd.ExecuteReader()
        While (reader.Read())
            Dim since As DateTime = DateTime.Parse(ConvertFromUnixTimestamp(reader.GetString(3)))
            Dim now As DateTime = DateTime.Now()
            Dim diff As TimeSpan = now - since
            Dim weeks As Integer = CInt(diff.TotalDays) \ 7
            itmx = ListView1.Items.Add(reader.GetString(1), 1)
            itmx.SubItems.Add(reader.GetString(2))
            itmx.SubItems.Add(weeks)
            itmx.SubItems.Add(reader.GetString(4))
        End While
        reader.Close()
        conn.Close()

Klappt genau so wie ichs will. Vielen dank!