Moin zusammen,
ich habe eine Tabelle mit 2 Spalten. Die erste Spalte ist das Datum inklusive Uhrzeit, die zweite die Temperatur eines Geräts.
Jetzt soll das Programm einmal durch alle Datensätze laufen und dabei von jedem Tag die Zeit berechnen in der die Temperatur über einem bestimmten Wert war(in diesem Fall 175°C). Für einen Tag funktioniert das auch prächtig, allerdings stehe ich etwas auf dem Schlauch was die äußere Schleife angeht. Leider ist die Anzahl der Messungen pro Tag auch nicht fix also kann jeder Tag unterschiedlich viele Messungen enthalten.
Ach ja, wieso das nicht klappt ist mir klar, ich find nur keine andere Lösung
Ich hoffe ich habe mich verständlich ausgedrückt
ich habe eine Tabelle mit 2 Spalten. Die erste Spalte ist das Datum inklusive Uhrzeit, die zweite die Temperatur eines Geräts.
1.10.2015/ 7:15 |174,3
1.10.2015/ 7:17 | 175,1
und irgendwann dann
2.10.2016/ 7:25 |163,5
usw.
Jetzt soll das Programm einmal durch alle Datensätze laufen und dabei von jedem Tag die Zeit berechnen in der die Temperatur über einem bestimmten Wert war(in diesem Fall 175°C). Für einen Tag funktioniert das auch prächtig, allerdings stehe ich etwas auf dem Schlauch was die äußere Schleife angeht. Leider ist die Anzahl der Messungen pro Tag auch nicht fix also kann jeder Tag unterschiedlich viele Messungen enthalten.
VB.NET-Quellcode
- Dim stunden As TimeSpan
- Dim erster As TimeSpan
- Dim letzter As TimeSpan
- Dim stunde As Date
- 'Das erste Datum in der Tabelle(wird später eingegeben)
- Dim startdatum As Date = "01.10.2015"
- 'Diese Schleife müsste vernünftig durch die Tabelle laufen, im Moment funktioniert halt nur der erste Tag
- For i = 0 To LogsBindingSource.Count - 1
- Dim zeiten As New HashSet(Of TimeSpan)
- Dim logrow = DirectCast(DirectCast(LogsBindingSource.Item(i), DataRowView).Row, Daten.LogsRow)
- If logrow.Time.ToShortDateString = startdatum.AddDays(i) Then
- 'Ausrechnen der Stunden für den bestimmten Tag, das funktioniert
- For j = 0 To LogsBindingSource.Count - 1
- Dim logtest = DirectCast(DirectCast(LogsBindingSource.Item(j), DataRowView).Row, Daten.LogsRow)
- If logtest.Time.ToShortDateString = startdatum.AddDays(i) And logtest.Temp >= 175 Then
- Tag = logtest.Time.ToShortDateString
- stunde = logtest.Time.ToShortTimeString
- zeiten.Add(stunde.TimeOfDay)
- End If
- Next
- erster = zeiten.First
- letzter = zeiten.Last
- stunden = letzter - erster
- Daten.Stunden.AddStundenRow(logrow.Time.ToShortDateString, stunden)
- 'bis hier
- End If
- Next
Ach ja, wieso das nicht klappt ist mir klar, ich find nur keine andere Lösung
Ich hoffe ich habe mich verständlich ausgedrückt
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dattKlobiche“ ()