| |
VB.NET - Ein- und UmsteigerRe: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 10.04.24 19:44 |
| Hallo!
Die Differenz zwischen zwei Datumswerten (ohne Uhrzeit) ist durch die Anzahl der Tage gegeben.
Andere Angaben sind Umrechnungen. (Dabei fließen - wie oben bereits erwähnt - Vorgaben ein.)
Zwischen den Datumsangaben 21.1.23 - 21.2.23 - 21.3.23 liegt stets ein Monat, allerdings jeweils
mit unterschiedlicher Zahl von Tagen (31 bzw. 28).
Beim kaufmännischen Rechnen werden oft - aber nicht immer - pauschal 30 Tage für einen Monatszeitraum
angesetzt.
Dein erstes Intervall betrüge in dem Fall einen Monat und einen Tag.
Das zweite Intervall betrüge 0 Monate und 28 Tage.
Die ganzahlige Division verwendet den \-Operator.
Den Rest der ganzzahligen Division bestimmt man durch den MOD-Operator.
Keine Rundung.
Beitrag wurde zuletzt am 10.04.24 um 19:48:58 editiert. | |
Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 08.04.24 16:34 |
| wie kann ich das nachstellen ?
ich gebe ein Datum ein mit Uhrzeit > 21.06.2023 11:17 zBsp.
wie ich die differenz rechne weiß ich, aber ich möchte so ein Ergbnis
Zeitraum: Mi, 21.06.2023 - Mo, 08.04.2024
Länge des Zeitraums: 9 Monate, 2 Wochen, 4 Tage
Länge in Tagen: 292 Tage
Länge in Wochen: 41 Wochen, 5 Tage
Ergebnis in ein Label anzeigen!
Danke für die Hilfe
Beitrag wurde zuletzt am 08.04.24 um 16:39:11 editiert. | |
Re: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 08.04.24 18:34 |
| Hallo!
Diese Darstellungen eines Zeitintervalls sind sachlich nicht eindeutig durchführbar.
Kalenderwochen und Kalendermonate oder Zeiträume?
Sollen für einen Monat pauschal 30 Tage angesetzt werden? Oder sollen die tatsächlichen
vollen Monate im Zeit-Intervall gezählt werden?
Tage im Anfangsmonat und im Endmonat wie einbeziehen?
Ist der Zeitraum vom 15.2 bis 16.3 eines Jahres als ein Monat zu betrachten?
Das gleiche gilt sinngemäß bei der Intervallangabe in Tagen oder in Wochen und Tagen.
Wie wird eine Woche definiert?
Als beliebiges Intervall von 7 Tagen oder als Abfolge fester Intervalle z.B.
jeweils von von Montag bis Sonntag?
Falls es nur um Zeitintervalle geht, reicht es vermutlich, die Zahl der Tage im Intervall
ganzzahlig durch 30 zu dividieren (Zahl der Monate, Divisionsrest: Tage) - bzw durch 7 (Wochen).
Beitrag wurde zuletzt am 08.04.24 um 18:46:12 editiert. | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 10.04.24 17:40 |
| Hallo Manfred,
Danke für deine Antwort
ganzzahlig durch 30 zu dividieren (Zahl der Monate, Divisionsrest: Tage) - bzw durch 7 (Wochen) ?
ich möchte nach Eingabe der Ablesedaten:
21.01.2023 erste Ablesung = Nothing bzw. 0
21.02.2023 hier soll nun die Differenz in Monate, Wochen, Tagen berechnet werden
21.03.2023 die Differenz zum 21.02.2023
oder mach ich es mir schon wieder zu kompliziert ?
Dim NL As String = Environment.NewLine
Dim Titel As String = "Statusmeldung"
'Ableseintervall Variable (Tage)
Dim interval_days As Integer
'-----------------------------------------------------
For Zeile As Integer = 0 To DGVStrom.Rows.Count - 2
Dim d1 As Date = Date.Parse(DGVStrom.Rows(Zeile).Cells(1).Value)
Dim d2 As Date = Date.Parse(DGVStrom.Rows(Zeile + 1).Cells(1).Value)
'aktuelles Ableseintervall in Tagen
interval_days = (d2 - d1).TotalDays
If Zeile = 0 Then
Dim Meldung As String = String.Concat(NL, "erste Ablesung," & _
"keine Berechnung")
MessageBox.Show(Meldung, Titel, MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Else
'wenn Monate = 30 Tage dann interval_days / 30
'wenn Monatsgenau dann 3/31 + 3/30
Dim Meldung As String = String.Concat(NL, Zeile, NL, _
"Monate: " & CInt( _
interval_days / 30), _
NL, _
"Wochen: " & ( _
interval_days / 30) / _
7, NL, _
"Tage: " & "?")
MessageBox.Show(Meldung, Titel, MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End If
Next | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 11.04.24 02:31 |
| Hallo
Sub Zeitraum(d1 As Date, d2 As Date)
Console.WriteLine($"Zeitraum: {d1:f} - {d2:f}")
Console.WriteLine()
Dim ts As TimeSpan = d2 - d1 'Differenz
Console.WriteLine($"Länge: {ts:d' Tage, 'h' Stunden und 'm' Minuten'}")
Dim tage As Integer = ts.Days
Console.WriteLine($"Länge in Tagen: {tage} Tage")
Console.WriteLine($"Länge in Wochen: {tage \ 7} Wochen und {tage Mod 7}" & _
"Tage")
'-------------------------------------------------------
' Zeitraum mit tatsächlichen Tagen der einzelnen Monate.
Dim d As Date = d1, x As Date, m As Integer = 0
Do
x = d1.AddMonths(m + 1)
If x > d2 Then Exit Do
d = x : m += 1
Loop
ts = d2 - d
tage = ts.Days
Console.WriteLine($"Länge des Zeitraums: {m} Monate, {tage \ 7} Wochen," & _
"{tage Mod 7} Tage, {ts:h' Stunden und 'm' Minuten'}")
End Sub
' mit diesem Aufruf:
Zeitraum(#2023/06/21 11:17#, #2024/04/08 17:20#)
' ergibt sich dieses Ergebnis:
'Zeitraum: Mittwoch, 21. Juni 2023 11:17 - Montag, 8. April 2024 17:20
'Länge: 292 Tage, 6 Stunden und 3 Minuten
'Länge in Tagen: 292 Tage
'Länge in Wochen: 41 Wochen und 5 Tage
'Länge des Zeitraums: 9 Monate, 2 Wochen, 4 Tage, 6 Stunden und 3 Minuten Der Zeitraum wird hier mit den tatsächlichen Tagen der Monate berechnet. Dies stimmt mit deinen Angaben überein.
Nur für Anzeigezwecke ist das ok. Rechnen sollte man aber nur mit Tagen, alles andere wird ungenau.
Du kannst dies auch als Funktion schreiben, die den Zeitraum als String zurück gibt. | |
Re: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 11.04.24 09:42 |
| Hallo!
Ich kann vor dieser Routine nur warnen.
Das Zeit-Intervall wird in der Genauigkeit von Stunden und Minuten angegeben,
obwohl in der Monats-Angabe beim Vergleich +/- 3 Tage drin stecken.
Diese Ungenauigkeit ist auch bei Verwendung einer Label-Anzeige irreführend.
Um eine größere Zahl von Tagen anschaulich zu machen, kann man die Zahl der Monate
(je 30 Tage) und der Wochen (je 7 Tage) angeben.
Die Zahl der zusätzlichen Tage im Intervall und die Stunden/Minuten entfallen.
Will man die Tage (und die Stunden/Minuten) genau angeben, sollte man die Zahl der
Monate weg lassen und das Intervall auf die Anzahl von Wochen und Tagen (+Stunden/Minuten)
beziehen.
Beitrag wurde zuletzt am 11.04.24 um 09:47:56 editiert. | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 11.04.24 11:53 |
| wenn ich das abrufe gibt es Probleme
Zeitraum("#2023/06/21 11:17#", "#2024/04/08 17:20#") 1. ungültige Zeichen
2. Länge in Wochen: {tage \ 7} Wochen und {tage Mod 7}Tage
Länge des Zeitraums: {m} Monate, {tage \ 7} Wochen,{tage Mod 7} Tage, {ts:h'
' Stunden und 'm' Minuten'}
Der Thread 'vshost.RunParkingWindow' (0x13fc) hat mit Code 0 (0x0) geendet.
Der Thread '<Kein Name>' (0x22e8) hat mit Code 0 (0x0) geendet.
Das Programm "[7288] MyArchiv.vshost.exe: Verwaltet (v4.0.30319)" wurde mit _
Code 0 (0x0) beendet. ich erhalte also kein Ergebnis | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 11.04.24 12:50 |
| Hallo
Dieses Beispiel habe ich mit VS2022 erstellt. Es funktioniert auch mit VS2019. Nicht mit älteren Versionen.
Die Zeilenumbrüche, die dieses Forum automatisch macht, sind nicht immer korrekt und du musst sie entfernen.
Das ist so nicht gültig:
Länge des Zeitraums: {m} Monate, {tage \ 7} Wochen,{tage Mod 7} Tage, {ts:h'
' Stunden und 'm' Minuten'} Der letzte Teil muss so sein:
... Tage, {ts:h' Stunden und 'm' Minuten'}") Der grüne Text ist kein Kommentar! | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 11.04.24 14:27 |
| ich habs mal umgeschrieben
Ergebnisse:
und
und was nun, was ist noch falsch oder unrichtig.
und wie ich habe eine Zeilenpaarung siehe Bildmaterial
Aufruf: Zeitraum("2023.02.21 11:27", "2023.03.21 11:37") Sub Zeitraum(d1 As Date, d2 As Date)
Dim ts As TimeSpan = d2 - d1 'Differenz
Dim tage As Integer = ts.Days
' Zeitraum mit tatsächlichen Tagen der einzelnen Monate.
Dim d As Date = d1, x As Date, m As Integer = 0
Do
x = d1.AddMonths(m + 1)
If x > d2 Then Exit Do
d = x : m += 1
Loop
ts = d2 - d
tage = ts.Days
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1} {2} {3}", "Zeitraum: ", Format(d1, _
"dddd - dd-MMM-yyyy HH:mm"), " - ", Format(d2, "dddd - dd-MMM-yyyy" & _
"HH:mm"))
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1}", "Länge in Tagen: ", ts.Days & " Tage")
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2} {3}", "Länge in Wochen: ", ts.Days _
\ 7 & " Wochen und ", ts.Days Mod 7, " Tage")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "Länge: " & ts.Days & " Tage", _
ts.Hours & " Stunden", " und " & ts.Minutes & " Minuten")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2} {3} {4} {5} {6} {7}", "Länge des" & _
"Zeitraums: ", m & " Monate ", ts.Days \ 7 & _
" Wochen", ts.Days Mod 7, " Tage", ts.Hours & "" & _
"Stunden", " und ", ts.Minutes & " Minuten")
'-funktioniert, aber ManfredX meint was anderes ?
MsgBox(sbMeldung.ToString)
End Sub | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 11.04.24 15:11 |
| Ist dir aufgefallen, dass ich am Ende den beiden Variablen "ts" und "tage", neue Werte zuweise?
ts = d2 - d
tage = ts.Days Wenn du die Auswertung erst danach machst, solltest du dafür 2 neue Variablen deklarieren und diese dann am Ende der Auswertung verwenden.
Z.B.:
Dim ts2 As TimeSpan = d2 - d
Dim tage2 as Integer = ts.Days | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 11.04.24 15:26 |
| Es ist klar, dass diese Routine nicht exakt die Monate berechnen kann, da jeder Monat eine andere Anzahl an Tagen hat.
Das Ergebnis entspricht aber der Vorgabe von Erichbru.
Ich verwende meistens den Wert 30,4375 (365,25 / 12). Das ergibt bei grafischen Darstellungen eine einheitliche Breite der Monate. | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 11.04.24 16:11 |
| Also hier nochmal die komplette Funktion mit StringBuilder:
Formate kannst du direkt innerhalb der geschweiften Klammern angeben.
Das Format "f" entspricht dem kulturabhängigen langen Format.
Function Zeitraum(d1 As Date, d2 As Date) As String
Dim ts As TimeSpan = d2 - d1 'Differenz
' Zeitraum mit tatsächlichen Tagen der einzelnen Monate.
Dim d As Date = d1, x As Date, m As Integer = 0
Do
x = d1.AddMonths(m + 1)
If x > d2 Then Exit Do
d = x : m += 1
Loop
Dim ts2 As TimeSpan = d2 - d
Dim sb As New System.Text.StringBuilder
sb.AppendFormat("Zeitraum: {0:f} - {1:f}", d1, d2)
sb.AppendLine()
sb.AppendLine()
sb.AppendFormat("Länge in Tagen: {0} Tage", ts.Days)
sb.AppendLine()
sb.AppendFormat("Länge in Wochen: {0} Wochen und {1} Tage", ts.Days \ 7, _
ts.Days Mod 7)
sb.AppendLine()
sb.AppendLine()
sb.AppendFormat("Länge: {0} Tage, {1} Stunden und {2} Minuten", ts.Days, _
ts.Hours, ts.Minutes)
'oder auch so:
'sb.AppendFormat("Länge: {0:%d} Tage, {0:%h} Stunden und {0:%m} Minuten",
' ts)
sb.AppendLine()
sb.AppendLine()
sb.AppendLine()
sb.AppendFormat("Länge des Zeitraums: {0} Monate, {1} Wochen, " _
& "{2} Tage, {3} Stunden und {4} Minuten", _
m, ts2.Days \ 7, ts2.Days Mod 7, ts2.Hours, ts2.Minutes)
Return sb.ToString
End Function
Beitrag wurde zuletzt am 11.04.24 um 16:38:42 editiert. | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 11.04.24 17:14 |
| Danke Kuno60,
werd mich noch mal intensiver damit befassen
ich habe das auch mal im Netz verglichen mit einem "Tageszähler zwischen 2 Daten"
der Code sieht nun so aus:
Private Sub Zeitraum(d1 As Date, d2 As Date)
Dim sbMeldung As New System.Text.StringBuilder
Dim ts As TimeSpan = d2 - d1 'Differenz
Dim tage As Integer = ts.Days
' Zeitraum mit tatsächlichen Tagen der einzelnen Monate.
Dim d As Date = d1, x As Date, m As Integer = 0
sbMeldung.AppendFormat("{0} {1} {2} {3}", "Zeitraum: ", Format(d1, "ddd" & _
"- dd-MMM-yyyy"), " - ", Format(d2, "ddd - dd-MMM-yyyy"))
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1}", "Länge in Tagen: ", tage & " Tage")
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2} {3}", "Länge in Wochen: ", tage \ 7 _
& " Wochen und ", tage Mod 7, " Tage")
sbMeldung.AppendLine()
''sbMeldung.AppendFormat("{0} {1} {2}", "Länge: " & tage & " Tage", _
ts.Hours & " Stunden", " und " & m & " Minuten")
Do
x = d1.AddMonths(m + 1)
If x > d2 Then Exit Do
d = x : m += 1
Loop
ts = d2 - d
tage = ts.Days
sbMeldung.AppendFormat("{0} {1} {2}", "Länge des Zeitraums: ", m & "" & _
"Monate ", tage \ 7 & " Wochen")
'', tage Mod 7, " Tage", ts.Hours & " Stunden", " und ", m & " Minuten")
'----------------------------------------------------------------------
MessageBox.Show(sbMeldung.ToString, "Ablesedaten-Eingabe-Status", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub das Ergebnis im direkten vergleich
gibt es da nun noch etwas zu berücksichtigen ? | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 12.04.24 09:45 |
| Hallo Kuno60,
kannst du mir erklären warum Manfredx Zitat: Ich kann vor dieser Routine nur warnen.
vor deiner Routine warnt, OK weil wohl ungenau aber verstehe es halt noch nicht ganz, was macht deine Routine genau
Dim ts As TimeSpan = d2 - d1 'Differenz
' Zeitraum mit tatsächlichen Tagen der einzelnen Monate.
Dim d As Date = d1, x As Date, m As Integer = 0
Do
x = d1.AddMonths(m + 1)
If x > d2 Then Exit Do
d = x : m += 1
Loop
Dim ts2 As TimeSpan = d2 - d Danke euch für die Antworten auf diesen Post | |
Re: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 12.04.24 11:45 |
| Hallo!
Ich hatte meine Warnung doch begründet.
Diese Routine zählt die Länge der Monate (in Tagen), die innerhalb des Zeitintervalls liegen
(ohne ggf. Resttage in Schlussmonat[en]).
Die Zahl dieser so ermittelten Tage ist davon abhängig, in welchem Monat das Intervall beginnt.
Das führt dazu, dass zwei gleichlange Zeitintervalle, die aber in verschiedenen Monaten beginnen,
in der Darstellung (Monate, Wochen, Tage) sich um mehrere Tage unterscheiden können.
Datenanalytisch formuliert: Eine berechneter oder gemessener Wert sollte nie mit höherer Genauigkeit
angegeben werden, als er tatsächlich besitzt.
Beitrag wurde zuletzt am 12.04.24 um 11:48:10 editiert. | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 12.04.24 18:53 |
| Erichbru schrieb:
Zitat: | | Hallo Kuno60,
kannst du mir erklären warum Manfredx Zitat: Ich kann vor
dieser Routine nur warnen.
vor deiner Routine warnt, OK weil wohl ungenau aber verstehe
es halt noch nicht ganz, was macht deine Routine genau
| |
Diese Routine macht gefährliche Sachen! Die Warnung von ManfredX solltest du ernst nehmen! Da ist schon so mancher PC explodiert. 🤣🤣
Das macht die Schleife wirklich:
Do
x = d1.AddMonths(m + 1)
If x > d2 Then Exit Do
m += 1
Console.WriteLine($"Monat {m}: {x:d} Tage: {(x - d).Days} Summe: {(x -" & _
"d1).Days}")
d = x
Loop
'Ausgabe:
'Zeitraum: Mittwoch, 21. Juni 2023 - Freitag, 12. April 2024
'Länge in Tagen: 296 Tage
'Monat 1: 21.07.2023 Tage: 30 Summe: 30
'Monat 2: 21.08.2023 Tage: 31 Summe: 61
'Monat 3: 21.09.2023 Tage: 31 Summe: 92
'Monat 4: 21.10.2023 Tage: 30 Summe: 122
'Monat 5: 21.11.2023 Tage: 31 Summe: 153
'Monat 6: 21.12.2023 Tage: 30 Summe: 183
'Monat 7: 21.01.2024 Tage: 31 Summe: 214
'Monat 8: 21.02.2024 Tage: 31 Summe: 245
'Monat 9: 21.03.2024 Tage: 29 Summe: 274
'Länge des Zeitraums: 9 Monate und 22 Tage | |
Re: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 12.04.24 19:00 |
| Hallo!
Häufiger als die PCs explodieren vermutlich die Nutzer der Programme,
in die diese Routine eingebaut ist. | |
Re: Datum Zeitspanne rechnen | | | Autor: Kuno60 | Datum: 12.04.24 19:10 |
| 👍😁 | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 13.04.24 10:15 |
| dann verstehe ich nun garnicht, warum die Routine hier vorgestellt wurde
als Demo ? wie muss die Routine denn nun aussehen ?
Danke! | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 16.04.24 12:13 |
| Hallo Manfred, hallo Kuno
was ist nun geeigneter ?
1. Variante (DateDiff) ?
2. Variante Routine Kuno60 ?
3. Variante ist nur so habe ein bisschen recherchiert
mich würde da noch die Variante Manfred interessieren
Danke | |
Re: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 16.04.24 14:05 |
| Hallo!
Kaufmännisch:
Dim totaldays As Integer = 1155
Dim years As Integer = totaldays \ 360 'Zinsjahr
Dim months As Integer = (totaldays - years * 360) \ 30
Dim weeks As Integer = (totaldays - years * 360 - months * 30) \ 7
Dim days As Integer = totaldays - years * 360 - months * 30 - weeks * 7 Man kann eventuell für jedes Jahr noch 5 Tage von Totaldays abziehen
und mit der verminderten Tageszahl umrechnen.
Dim totaldays As Integer = 1155
Dim years As Integer = totaldays \ 360
totaldays = totaldays - years * 5
years = totaldays \ 360 'Zinsjahr
Dim months As Integer = (totaldays - years * 360) \ 30
Dim weeks As Integer = (totaldays - years * 360 - months * 30) \ 7
Dim days As Integer = totaldays - years * 360 - months * 30 - weeks * 7 Die Zahl der Tage würde ich bei der Anzeige weglassen.
Beitrag wurde zuletzt am 16.04.24 um 14:15:13 editiert. | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 16.04.24 17:45 |
| Super nun verstehe ich das auch so langsam
jetzt probier ich wie ich das in meine Anwendung reinpacke
das ist bei soviel Input auch kein Thema mehr, habe da schon eine Idee die passt bestimmt
Danke euch | |
Re: Datum Zeitspanne rechnen | | | Autor: Erichbru | Datum: 17.04.24 15:52 |
| das Ergebnis verstehe ich noch nicht, warum sind 10 Monate 0 Wochen
wäre sehr Nett wenn mir das noch mal deutlich gemacht wird
Dim totaldays As Integer = DateDiff("d", d1, d2)
Dim years As Integer = totaldays \ 360 'Zinsjahr
totaldays = totaldays - years * 5
Dim months As Integer = (totaldays - years * 360) \ 30
Dim weeks As Integer = (totaldays - years * 360 - months * 30) / 7
Dim days As Integer = totaldays - years * 360 - months * 30 - weeks * 7
Dim ts As TimeSpan = d2 - d1 'Differenz
Dim sb As New System.Text.StringBuilder
sb.AppendFormat("Status: {0:f} - {1:f}", d1, d2)
sb.AppendLine()
sb.AppendLine()
sb.AppendFormat("Länge in Tagen: {0} Tage", totaldays)
sb.AppendLine()
sb.AppendFormat("Länge in Wochen: {0} ", weeks)
sb.AppendLine()
sb.AppendFormat("Oder: {0} Monate und {1} Tage", months, days)
sb.AppendLine()
sb.AppendLine()
sb.AppendFormat("Oder: {0} Jahre |{1} Monate | {2} Wochen", years, _
months, weeks)
sb.AppendLine()
sb.AppendFormat("Zeitraum: {0:%d} Tage, {0:%h} Stunden und {0:%m}" & _
"Minuten", ts)
sb.AppendLine()
If years = 0 Then
sb.AppendLine()
sb.AppendLine()
sb.AppendFormat("letzte Eingabe vor: {0} Monaten ", months)
End If
'----------------------------------------------------------------------
MessageBox.Show(sb.ToString, "Ablesedaten-Eingabe-Status", _
MessageBoxButtons.OK, MessageBoxIcon.Information) | |
Re: Datum Zeitspanne rechnen | | | Autor: Manfred X | Datum: 17.04.24 18:30 |
| Hallo!
Du verstehst irgendwie nicht, was eine Divison ist.
Wenn Du den gesamten Zeitraum (in Tagen) als eine Zahl
von Wochen darstellen willst, dann musst Du totaldays \ 7 rechnen.
Die Resttage sind dann durch totaldays MOD 7 gegeben.
Oder durch: totaldays - weeks * 7
Mein Code prüft zunächst, wievele (standardisierte) Jahre sind es. \360
Der verbliebene Rest der Tage wird ausgedrückt in einer Zahl von (standardisierten) Monaten. \30
Der wiederum verbliebene Rest wird ausgedrückt in einer Zahl von Wochen. \7
Der Gesamzeitraum besteht aus: x Jahren + y Monaten + z Wochen (+Resttage, ungenau)
Das ist eine Gliederung, um den Zeitraum vieler Tage für den Benutzer möglichst
anschaulich zu machen.
Beitrag wurde zuletzt am 17.04.24 um 18:36:16 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|