Benutzer mit den meisten Antworten
Sekundenwerte subtrahieren in Zeit umwandeln und diese in Industrieminuten dies in eine Double Zahl

Frage
-
Hi zusammen, ich habe eine ganz üble Aufgabe. Für eine Zeiterfassung habe ich 2 Sekundenwerte (Arbeitszeit). Diese Werte ziehe ich von einander ab und ermittel davon einen Zeitwert (das klappt auch soweit) . Nur müßte ich diesen Wert jetzt in Industrieminuten (7:30 = 7,5) umwandeln und daraus anschließend eine Dezimalzahl erstellen. Wie kann ich das am besten angehen?
Antworten
-
Hi zusammen, ich habe eine ganz üble Aufgabe. Für eine Zeiterfassung habe ich 2 Sekundenwerte (Arbeitszeit). Diese Werte ziehe ich von einander ab und ermittel davon einen Zeitwert (das klappt auch soweit) . Nur müßte ich diesen Wert jetzt in Industrieminuten (7:30 = 7,5) umwandeln und daraus anschließend eine Dezimalzahl erstellen. Wie kann ich das am besten angehen?
Hallo Michael,das ganze ist ja kein ASP.NET Problem, sondern eher eines der Anwendungslogik, unabhängig von der verwendeten Technologie. Aber das nur so am Rande :)
http://de.wikipedia.org/wiki/Industrieminute
liefert eigentlich auch schon die Berechnungsmethode. Du errechnest Stunden, Minuten und Sekunden und daraus dann den gewünschten Wert.
Nachstehend ein wenig Code (hoffe, er ist verständlich, hab mir Mühe gegeben, ihn aufzublähen :)
Dim GesamtSekunden As Int64 = 31500 Dim RestSekunden As Int64 = 0 Dim IndustrieSekunden As Double Dim Stunden As Int64 Dim Minuten As Int64 Dim Sekunden As Int64 Stunden = Fix( GesamtSekunden / 3600 ) RestSekunden = GesamtSekunden - Stunden * 3600 Minuten = Fix( RestSekunden / 60 ) RestSekunden = RestSekunden - Minuten * 60 Sekunden = RestSekunden IndustrieSekunden = CType( Stunden, Double ) + CType( Minuten / 60, Double ) + CType( Sekunden / 3600, Double )
Ob das jetzt 100%ig stimmt, weiß ich nicht, das testen überlasse ich dir :) Beachte dabei auch die Hinweis auf der verlinkten Seite bzgl. runden.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 20. Oktober 2010 09:46
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 28. Oktober 2010 15:27
-
Noch einfacher geht es mit
IndustrieSekunden= new TimeSpan(0,0,GesamtSekunden).TotalHours
Gruß,
Sergej.
- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 20. Oktober 2010 09:46
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 28. Oktober 2010 15:27
Alle Antworten
-
Hi zusammen, ich habe eine ganz üble Aufgabe. Für eine Zeiterfassung habe ich 2 Sekundenwerte (Arbeitszeit). Diese Werte ziehe ich von einander ab und ermittel davon einen Zeitwert (das klappt auch soweit) . Nur müßte ich diesen Wert jetzt in Industrieminuten (7:30 = 7,5) umwandeln und daraus anschließend eine Dezimalzahl erstellen. Wie kann ich das am besten angehen?
Hallo Michael,das ganze ist ja kein ASP.NET Problem, sondern eher eines der Anwendungslogik, unabhängig von der verwendeten Technologie. Aber das nur so am Rande :)
http://de.wikipedia.org/wiki/Industrieminute
liefert eigentlich auch schon die Berechnungsmethode. Du errechnest Stunden, Minuten und Sekunden und daraus dann den gewünschten Wert.
Nachstehend ein wenig Code (hoffe, er ist verständlich, hab mir Mühe gegeben, ihn aufzublähen :)
Dim GesamtSekunden As Int64 = 31500 Dim RestSekunden As Int64 = 0 Dim IndustrieSekunden As Double Dim Stunden As Int64 Dim Minuten As Int64 Dim Sekunden As Int64 Stunden = Fix( GesamtSekunden / 3600 ) RestSekunden = GesamtSekunden - Stunden * 3600 Minuten = Fix( RestSekunden / 60 ) RestSekunden = RestSekunden - Minuten * 60 Sekunden = RestSekunden IndustrieSekunden = CType( Stunden, Double ) + CType( Minuten / 60, Double ) + CType( Sekunden / 3600, Double )
Ob das jetzt 100%ig stimmt, weiß ich nicht, das testen überlasse ich dir :) Beachte dabei auch die Hinweis auf der verlinkten Seite bzgl. runden.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 20. Oktober 2010 09:46
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 28. Oktober 2010 15:27
-
Noch einfacher geht es mit
IndustrieSekunden= new TimeSpan(0,0,GesamtSekunden).TotalHours
Gruß,
Sergej.
- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 20. Oktober 2010 09:46
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 28. Oktober 2010 15:27
-
Hallo Sergej,
Noch einfacher geht es mit
wohl wahr. Das ist einfach :)
IndustrieSekunden= new TimeSpan(0,0,GesamtSekunden).TotalHours
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community