Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zeitrechner

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Phil



Anmeldedatum: 08.07.2006
Beiträge: 18
Wohnort: Wülfrath

BeitragVerfasst am: Fr Sep 08, 2006 6:22 pm    Titel: Zeitrechner Antworten mit Zitat

Hallo zusammen, ich hänge gerade bei folgendem fest:
Ich versuche eine Funktion zu schreiben, die eine variable arbeitszeit mit einer variablen startzeit addiert und die daraus folgende uhrzeit zurückgibt.
Übergänge von einem Tag zum anderen müssen nicht berücksichtigt werden.
Was ich nun logisch garnicht auf die Reihe bekomme, ist der Sprung zu einer neuen Stunde, und der ganze Kram.
Unten stehender Code ist wahrscheinlich zu 99% Blödsinn, weiss schon garnicht mehr zum wievielten Mal ich das neu anfange Rolling Eyes

Code:

startzeit = 14:15
arbeitszeit = 136 ; In Minuten

MsgBox, % "Startzeit: " startzeit " Uhr`n" "Arbeitszeit: " arbeitszeit " Minuten`n`nFeierabend: " addTime(startzeit, arbeitszeit) ; %
ExitApp

addTime(startzeit, arbeitszeit)
{
   StringSplit, digit_, startzeit, :
   hrs := digit_1
   mins := digit_2
   Loop
   {
      If überschuss = 0
      {
         break
      }
      newmins := mins + arbeitszeit
      If newmins > 60
      {
         überschuss := newmins - 60
      }
      MsgBox, %mins% + %arbeitszeit% = %newmins% davon sind mehr als 60: %überschuss%
      
   }
   return endzeit
}


PS: Über EnvAdd und EnvSub hab ich was gelesen, weiss aber nicht wie ich das in diesem fall einsetzen soll, und am liebsten wärs mir ohne, glaub ich ^^

Danke für eure Hilfe, Phil
_________________
Win XP Prof Sp2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Boskoop als Gast
Gast





BeitragVerfasst am: Sa Sep 09, 2006 12:37 pm    Titel: Antworten mit Zitat

Ich habe im englischen Forum mal ein Skript gepostet, in dem viel mit Zeiten gerechnet wird. Vielleicht hilft es Dir weiter:

http://www.autohotkey.com/forum/topic4413.html&highlight=stopwatch

Gruß
Boskoop
Nach oben
Chucky



Anmeldedatum: 07.01.2006
Beiträge: 701
Wohnort: Powerland

BeitragVerfasst am: So Sep 10, 2006 8:56 pm    Titel: Re: Zeitrechner Antworten mit Zitat

Code:
startzeit = 14:15
arbeitszeit = 136 ; In Minuten

MsgBox, % "Startzeit: " startzeit " Uhr`n" "Arbeitszeit: " arbeitszeit " Minuten`n`nFeierabend: " addTime(startzeit, arbeitszeit) ; %
ExitApp

addTime(startzeit, arbeitszeit)
{
   StringSplit, digit_, startzeit, :

   ; Startzeit in Minuten wandeln, so kann man einfacher rechnen
   StartzeitInMinuten := digit_1*60 + digit_2
   EndzeitInMinuten := StartzeitInMinuten + Arbeitszeit

   ; Ergebnis zurück ins hh:mm-Format wandeln
   SetFormat, Float, 02.0                            ; mit Vornullen
   EndzeitStd := Floor(EndzeitInMinuten / 60)
   EndzeitStd := Mod(EndzeitStd, 24) + 0.0           ; hier Tagesüberlauf korrigieren
   EndZeitMin := Mod(EndzeitInMinuten, 60) + 0.0

   Endzeit = %EndzeitStd%:%EndzeitMin%

   Return Endzeit
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Phil



Anmeldedatum: 08.07.2006
Beiträge: 18
Wohnort: Wülfrath

BeitragVerfasst am: So Sep 10, 2006 9:40 pm    Titel: Antworten mit Zitat

danke euch beiden, chucky ich liebe dich, meister!
Jetzt mal rausfinden wie du das gemacht hast Smile
_________________
Win XP Prof Sp2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Phil&Chucky'sTrauzeug
Gast





BeitragVerfasst am: So Sep 10, 2006 9:53 pm    Titel: Antworten mit Zitat

Laughing
Nach oben
Phil



Anmeldedatum: 08.07.2006
Beiträge: 18
Wohnort: Wülfrath

BeitragVerfasst am: So Sep 10, 2006 10:15 pm    Titel: Antworten mit Zitat

hrhr Wink
_________________
Win XP Prof Sp2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Chucky



Anmeldedatum: 07.01.2006
Beiträge: 701
Wohnort: Powerland

BeitragVerfasst am: Di Sep 12, 2006 7:18 pm    Titel: Antworten mit Zitat

Phil hat Folgendes geschrieben:
danke euch beiden, chucky ich liebe dich, meister!

Ogottogottogottogottogottogottogottogottogottogottogottogottogottogottogott! Very Happy.
Gegenüber vielen anderen in diesem Forum bin ich wohl eher ein Azubi Cool .

Ich habe noch eine wesentlich kürzere Version der Berechnung, die mit dem von Dir erwähnten EnvAdd arbeitet.
Code:
startzeit = 14:15
arbeitszeit = 136 ; In Minuten

MsgBox, % "Startzeit: " startzeit " Uhr`n" "Arbeitszeit: " arbeitszeit " Minuten`n`nFeierabend: " addTime(startzeit, arbeitszeit) ; %
ExitApp

addTime(startzeit, arbeitszeit)
{
   StringSplit, digit_, startzeit, `:
   Zeit = 20000101%digit_1%%digit_2%00   ; ins YYYYMMDDHH24MISS-Format umwandeln

   EnvAdd, Zeit, %arbeitszeit%, minutes  ; "Zeit += arbeitszeit, minutes" geht auch!

   FormatTime, EndZeit, %Zeit% T8, hh:mm
   Return Endzeit
}
Damit sich die Zeit auf diese Weise berechnen läßt, muß sie ins YYYYMMDDHH24MISS-Format gewandelt werden. Dazu mußt Du nur irgendein gültiges Datum an den Anfang des Startzeit-Strings setzen und Sekunden als Endung.
Und gaaaanz ruhig bleiben ... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de