none
Sekundenwerte subtrahieren in Zeit umwandeln und diese in Industrieminuten dies in eine Double Zahl RRS feed

  • 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?

    Dienstag, 19. Oktober 2010 18:17

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
    Dienstag, 19. Oktober 2010 19:15
    Moderator
  • Noch einfacher geht es mit

     

    IndustrieSekunden= new TimeSpan(0,0,GesamtSekunden).TotalHours

     

    Gruß,

    Sergej.

    Mittwoch, 20. Oktober 2010 09:13

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
    Dienstag, 19. Oktober 2010 19:15
    Moderator
  • 1001 Dank. Klappt.
    ich hatte immer folgendes

      IndustrieSekunden = CType( Stunden, Double ) + CType( Minuten / 60, Double ) + CType( Sekunden / 3600, Double )
    nicht mit drin.

    Mittwoch, 20. Oktober 2010 07:31
  • Noch einfacher geht es mit

     

    IndustrieSekunden= new TimeSpan(0,0,GesamtSekunden).TotalHours

     

    Gruß,

    Sergej.

    Mittwoch, 20. Oktober 2010 09:13
  • Hallo Sergej,

    Noch einfacher geht es mit
    IndustrieSekunden= new TimeSpan(0,0,GesamtSekunden).TotalHours
    wohl wahr. Das ist einfach :)


    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
    Mittwoch, 20. Oktober 2010 09:48
    Moderator