Autor Thema: Hilfe !!! @Integer Frage  (Gelesen 2241 mal)

Offline Vigeli

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Hilfe !!! @Integer Frage
« am: 16.08.04 - 17:47:59 »
hallo forum

mit hilfe folgeder formel werden bei mir wochentage problemlos berrechnet:

start=16.08.2004 (07:30)
End=16.08.2004 (17:30)

=1 Tag
_____________________________________________

ddiff:=1 + @Integer((End - Start) / 86400); REM "Zeitdifferenz in Sekunden in ganze Tage umrechnen, 60s/min * 60min/h*24h/Tag = 86400s/Tag";
blocks:=@Integer(ddiff / 7); REM "Zahl der 7-Tage-Blöcke";
rest:=@Modulo(ddiff; 7); REM "Resttage ermitteln mithilfe 7-Tage-Divisionsrest";
swt:=@Weekday(Start);
ewt:=@Weekday(End);

res:=blocks * 5 +
rest +
@If(
   rest>0;
      @If(swt > ewt; -2; 0) +
      @If(swt = 1; -1; 0) +
      @If(ewt = 7; -1; 0);
   0);

@If(@IsError(res); 0; res)

____________________________________________________

wie muss ich vorgehen um einen halbentag (weniger als 4,5 Std) berrechen zu können?

Besten Dank
« Letzte Änderung: 16.08.04 - 17:49:04 von Vigeli »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Hilfe !!! @Integer Frage
« Antwort #1 am: 18.08.04 - 15:26:02 »
Deine Formel kapier ich nicht... aber ehrlich gesagt habe ich sie mir nicht genau angesehen, sieht mir zu kompliziert aus...
EDIT: Ich kapier sie doch... aber das ist ja wirklich viel zu kompliziert...

Um die Anszahl der Wochentage zwischen zwei Dati zu bekommen brauchst Du doch keine so komplizierte Formel:

Bsp: 15.08.2004 - 18.08.2004

range := @TextToTime( "[" + @Text( start ) + " - " + @Text( ende ) + "]");
alleTage := @Implode( range );
(ergibt: 15.08 , 16.08, 17.08, 18.08 )

tage := @Weekday( alleTage );
(ergibt 0 ; 1 ; 2 ; 3 ) (0 steht für Sonntag, 6 für Samstag)

tageohneWE := @Trim( @Replace( @Text( tage ) ; "0" : "6" ; "" );
(ergibt  1 ; 2 ; 3 )
anzahlTageOhneWE := @Elements( tageOhneWE );

und für Halbe Tage schaust Du jetzt einfach noch, wie die Start- Zeit und die Endzeit liegen...

HTH
Tode

Hier noch mal die Formel ohne Kommentare:
range := @TextToTime( "[" + @Text( start ) + " - " + @Text( ende ) + "]");
alleTage := @Implode( range );
tage := @Weekday( alleTage );
tageohneWE := @Trim( @Replace( @Text( tage ) ; "0" : "6" ; "" );
anzahlTageOhneWE := @Elements( tageOhneWE );
« Letzte Änderung: 18.08.04 - 15:28:06 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Hilfe !!! @Integer Frage
« Antwort #2 am: 18.08.04 - 16:25:12 »
Tode: der korrekte Plural von Datum, wenn man ihn denn schon in "gehobener" Form angeben möchte, wäre Data, was aber wiederum wegen sprachlicher Nichtexistenz eigentlich nicht korrekt ist. Einfacher wäre bestimmt der Ausdruck "zweier (Kalender-)Daten" gewsen :)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Hilfe !!! @Integer Frage
« Antwort #3 am: 18.08.04 - 16:43:01 »
Die LATEINISCH korrekte Plural- Form von Datum (dare do dedi datum -etwas gegebenes) wäre tatsächlich "DATA"....

Die deutsche Sprache hat sich hier allerdings von der lateinischen wegentwickelt.

Laut Duden ist der korrekte Plural von Datum "Daten".. nicht "Datums", oder "Dati", auch nicht "Datümer"...

nur, um das richtig zu stellen... ;)

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Hilfe !!! @Integer Frage
« Antwort #4 am: 18.08.04 - 16:55:25 »
Sag ich ja
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Hilfe !!! @Integer Frage
« Antwort #5 am: 18.08.04 - 17:05:03 »
habe ich wieder nur die Hälfte gelesen...

Ich gebe mich geschlagen.... ;)
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Vigeli

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re:Hilfe !!! @Integer Frage
« Antwort #6 am: 18.08.04 - 18:01:32 »
hallo tode

.. ich danke dir vielmals für deine bemühungen, echt nett :-) !!!

...ABER ich bin zu blöd dafür, wie kann ich das genau machen?
hier ein beispiel mit einer maske. kannst du mir das mitte erklären?

vielen dank

gruss
vige


Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Hilfe !!! @Integer Frage
« Antwort #7 am: 19.08.04 - 10:19:35 »
@Vigeli

Vielleicht wäre es hilfreich zu erklären, was du mit deiner Berechnung erreichen willst. Umreiße doch mal bitte die genaue Problemstellung, ohne dabei bereits eine Lösung zu präsentieren. Leider ist das Problem nicht immer aus der Lösung ersichtlich...

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Vigeli

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re:Hilfe !!! @Integer Frage
« Antwort #8 am: 19.08.04 - 10:32:42 »
 ..... was mit meiner Berechnung erreichen will?? hier nochmals ein versuch:

ZIEL ist halbe ferientage abzuziehen: wenn weniger als 4,5 Std = 1/2 Tag, wenn mehr als 4,5 Std = 1 Tag abzuziehen


ist ein wenig kompliziert ....
« Letzte Änderung: 19.08.04 - 10:36:32 von Vigeli »

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Hilfe !!! @Integer Frage
« Antwort #9 am: 19.08.04 - 10:39:32 »
Wie werden denn die Urlaubstage eingetragen? Gibt der User ein: Urlaub vom 02.08.04 - 13.08.04 und die Formel soll die Anzahl der Urlaubstage berechnen? Gibt der User die Tage jeweils einzeln und mit Uhrzeit ein?

Wie wäre es, wenn du genau umgekehrt vorgibst und der User eingibt: ich habe 1/1 Tag, 1/2 Tag, x/1 Tage bzw. x/2 Tag Urlaub, ausgehend von einem Ausgangsdatum? Bei Eingabe von 1/2 Tag Urlaub setzt das Script/die Fomel das dann als 7:30 - 12:00 h um (falls die Uhrzeiten überhaupt eine Rolle spielen).

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Vigeli

  • Frischling
  • *
  • Beiträge: 38
  • Geschlecht: Männlich
Re:Hilfe !!! @Integer Frage
« Antwort #10 am: 19.08.04 - 10:45:57 »
richtig:  

der user gibt die tage jeweils einzeln und mit uhrzeit  wie folgt ein:

urlaub vom 02.08.04 - 13.08.04  - 07:30 - 17:30 Uhr, nd die formel soll die anzahl der urlaubstage berechnen!

oben habe ich eine datenbank als bespiel angehängt

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:Hilfe !!! @Integer Frage
« Antwort #11 am: 19.08.04 - 12:03:52 »
Also gut:

Du verwendest erst mal meine erste Formel, um die "Ganzen" Tage zu berechnen.

jetzt brauchst Du noch eine Formel, die prüft, ob der erste Tag ein ganzer oder halber Tag ist, das gleiche für den letzten Tag.

ersterTagAbzug := @If( @Time( start ) > @Time( @TextToTime( "12:00" ) )  ; 0,5 ; 0 );
letzterTagAbzug := @If( @Time( end ) < @Time( @TextToTime( "12:00" ) )  ; 0,5 ; 0 );

ergebnis := anzahlTageOhneWE - ersterTagAbzug - letzterTagAbzug;

HTH
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz