Autor Thema: arbeitszeit berechnen  (Gelesen 3069 mal)

Offline comet

  • Frischling
  • *
  • Beiträge: 37
arbeitszeit berechnen
« am: 09.05.05 - 10:22:50 »
für eine arbeitszeitberechnung verwende ich folgende formel

Min := ( End - Start ) / 60 ;
RestMin := @Modulo ( Min ; 60 ) ;
Std := @Hour ( End ) - @Hour ( Start );

StdAnzeige := @If (
@Hour ( End ) <= @Hour ( Start ) & @Minute ( End ) < @Minute ( Start ) ; Std +23 ;
@Hour ( End ) < @Hour ( Start ) & @Minute ( End ) >= @Minute ( Start ) ; Std +24 ;
@Hour ( End ) > @Hour ( Start ) & @Minute ( End ) < @Minute ( Start ) ; Std -1 ;
Std ) ;

RestMinAnzeige := @If (
@Hour ( End ) <= @Hour ( Start ) & RestMin > -60 & RestMin < -50 ; "0" + @Text ( RestMin + 60 ) ;
RestMin < 0 ; @Text ( RestMin + 60 ) ;
RestMin < 10 ; "0" + @Text ( RestMin ) ;
@Text ( RestMin ) ) ;

@If ( Start = "" | End = "" ; "" ;
@Text ( StdAnzeige ) + ":" + RestMinAnzeige )

leider zieht diese formel lediglich die startzeit von der endzeit ab.
nun soll jedoch ein weiteres feld "Pause" hinzukommen. kann mir jmd nen tipp geben, wie ich das einbinden kann.

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #1 am: 09.05.05 - 10:46:14 »
Rechne doch alles in Minuten um und rechne mit den Minutenwerten weiter - ist einfacher und weniger Code.

_start := @Hour(Start) * 60 + @Minute(Start);
_end := @Hour(end) * 60 + @Minute(end);

_AZ_brutto := _end - _start;
_AZ_netto := _AZ_brutto - Pause;

_AZ_netto_Stunden := @Integer(_AZ_netto / 60);
_AZ_netto_Minuten := _AZ_netto - _AZ_netto_Stunden *60;

_txt_AZ_netto := @Text(_AZ_netto_Stunden) + ":" + @right("00" + @Text(_AZ_netto_Minuten);2)
Gruß
Dirk

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: arbeitszeit berechnen
« Antwort #2 am: 09.05.05 - 10:47:51 »
dein code funzt aber nicht

der code ist schon sinnvoll, da dieser auch arbeitszeiten von 22.00 bis 6.15 uhr berücksichtigt.
sonst müsste man 21.59-23.59 und 0-6.15h eingeben, dass wollten wir ja nicht haben
« Letzte Änderung: 09.05.05 - 10:50:57 von mabecon »

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: arbeitszeit berechnen
« Antwort #3 am: 09.05.05 - 10:54:21 »
Ist die Pause ein Zeit, ( 30min ) oder eine Zeitspanne ( 12:30 - 13:30) ?

gruss

umi
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: arbeitszeit berechnen
« Antwort #4 am: 09.05.05 - 10:55:31 »
format 01:00 oder 00:30 oder 00:45 z.b.

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #5 am: 09.05.05 - 11:00:42 »
tragt ihr denn Datum und Zeit ein?

Was ist mit Diensten länger 24 Stunden?

Mit (Pause in Minuten)
_AZ_netto := (StdAnzeige * 60 + RestMinAnzeige) - Pause

_AZ_netto_Stunden := @Integer(_AZ_netto / 60);
_AZ_netto_Minuten := _AZ_netto - _AZ_netto_Stunden *60;

_txt_AZ_netto := @Text(_AZ_netto_Stunden) + ":" + @right("00" + @Text(_AZ_netto_Minuten);2)

hast Du doch die Lösung - Oder etwa nicht?
Gruß
Dirk

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: arbeitszeit berechnen
« Antwort #6 am: 09.05.05 - 11:06:39 »
es gibt folgende felder:

author - für erfasser der arbeitszeit
datum - beginndatum der schicht: format 09.05.2005
start - uhrzeit schichtbeginn format: 22:00
ende - uhrzeit schichtende format 06:15
Pause - format 00:30 für 30 min

time - berechnetes feld, wo die arbeitszeit abzüglich pause berechnet werden soll

schichten über 24 std gibt es nicht

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #7 am: 09.05.05 - 11:13:45 »
Pause ist vom Typ String - richtig?

Dann kannst Du mit
_Pause := @TextToNumber(@Word(Pause;":";1)) *60 + @TextToNumber(@Word(Pause;":";2));
die Pause in Minuten ausrechnen.

Zitat
schichten über 24 std gibt es nicht
, dann kannst Du bei negativen Ergebnissen einfach 24 Addieren!
Gruß
Dirk

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: arbeitszeit berechnen
« Antwort #8 am: 09.05.05 - 11:15:56 »
komisch bei mir zieht er die pause trotzdem nicht ab

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #9 am: 09.05.05 - 11:18:42 »
poste mal bitte den Code, den Du jetzt benutzt.
Gruß
Dirk

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: arbeitszeit berechnen
« Antwort #10 am: 09.05.05 - 11:26:27 »
Min := ( End - Start ) / 60 ;
RestMin := @Modulo ( Min ; 60 ) ;
Std := @Hour ( End ) - @Hour ( Start );

StdAnzeige := @If (
@Hour ( End ) <= @Hour ( Start ) & @Minute ( End ) < @Minute ( Start ) ; Std +23 ;
@Hour ( End ) < @Hour ( Start ) & @Minute ( End ) >= @Minute ( Start ) ; Std +24 ;
@Hour ( End ) > @Hour ( Start ) & @Minute ( End ) < @Minute ( Start ) ; Std -1 ;
Std ) ;

RestMinAnzeige := @If (
@Hour ( End ) <= @Hour ( Start ) & RestMin > -60 & RestMin < -50 ; "0" + @Text ( RestMin + 60 ) ;
RestMin < 0 ; @Text ( RestMin + 60 ) ;
RestMin < 10 ; "0" + @Text ( RestMin ) ;
@Text ( RestMin ) ) ;

@If ( Start = "" | End = "" ; "" ;
@Text ( StdAnzeige ) + ":" + RestMinAnzeige );

_Pause := @TextToNumber(@Word(Pause;":";1)) *60 + @TextToNumber(@Word(Pause;":";2));

_AZ_netto := (StdAnzeige * 60 + RestMinAnzeige) - Pause;

_AZ_netto_Stunden := @Integer(_AZ_netto / 60);
_AZ_netto_Minuten := _AZ_netto - _AZ_netto_Stunden *60;

_txt_AZ_netto := @Text(_AZ_netto_Stunden) + ":" + @right("00" + @Text(_AZ_netto_Minuten);2)

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #11 am: 09.05.05 - 11:29:55 »
in der Zeile
_AZ_netto := (StdAnzeige * 60 + RestMinAnzeige) - Pause;

fehlt ein Unterstrich
_AZ_netto := (StdAnzeige * 60 + RestMinAnzeige) - _Pause;

Als letzte Zeile müsstest Du noch folgendes einfügen:
_txt_AZ_netto
Gruß
Dirk

Offline comet

  • Frischling
  • *
  • Beiträge: 37
Re: arbeitszeit berechnen
« Antwort #12 am: 09.05.05 - 11:35:50 »
leider zieht er trotzdem die pause nicht ab.

füge ich die letzte zeile hinzu kommt ne nette fehlermeldung, egal ob ich das feld als berechnetes zahlen oder textfeld setze

Min := ( End - Start ) / 60 ;
RestMin := @Modulo ( Min ; 60 ) ;
Std := @Hour ( End ) - @Hour ( Start );

StdAnzeige := @If (
@Hour ( End ) <= @Hour ( Start ) & @Minute ( End ) < @Minute ( Start ) ; Std +23 ;
@Hour ( End ) < @Hour ( Start ) & @Minute ( End ) >= @Minute ( Start ) ; Std +24 ;
@Hour ( End ) > @Hour ( Start ) & @Minute ( End ) < @Minute ( Start ) ; Std -1 ;
Std ) ;

RestMinAnzeige := @If (
@Hour ( End ) <= @Hour ( Start ) & RestMin > -60 & RestMin < -50 ; "0" + @Text ( RestMin + 60 ) ;
RestMin < 0 ; @Text ( RestMin + 60 ) ;
RestMin < 10 ; "0" + @Text ( RestMin ) ;
@Text ( RestMin ) ) ;

@If ( Start = "" | End = "" ; "" ;
@Text ( StdAnzeige ) + ":" + RestMinAnzeige );

_Pause := @TextToNumber(@Word(Pause;":";1)) *60 + @TextToNumber(@Word(Pause;":";2));

_AZ_netto := (StdAnzeige * 60 + RestMinAnzeige) - _Pause;

_AZ_netto_Stunden := @Integer(_AZ_netto / 60);
_AZ_netto_Minuten := _AZ_netto - _AZ_netto_Stunden *60;

_txt_AZ_netto := @Text(_AZ_netto_Stunden) + ":" + @right("00" + @Text(_AZ_netto_Minuten);2);

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #13 am: 09.05.05 - 12:31:08 »
wie lautet die FM?

Ist Pause immer im Format 00:00 eingetragen?
Gruß
Dirk

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: arbeitszeit berechnen
« Antwort #14 am: 09.05.05 - 12:49:21 »
RestMinAnzeige ist doch Text oder?
Was macht es dann in der _AZ_Netto formel?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: arbeitszeit berechnen
« Antwort #15 am: 09.05.05 - 12:49:27 »
der Fehler liegt in der RestMinAnzeige. Weil die schon ein Text ist und in der Zeile
_AZ_netto := (StdAnzeige * 60 + RestMinAnzeige) - _Pause;
bin ich davon ausgegangen, dass es sich wie bei StdAnzeige um eine Zahl handelt.
Gruß
Dirk

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz