Autor Thema: Gibt es "minus Null"?  (Gelesen 1866 mal)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Gibt es "minus Null"?
« am: 13.03.10 - 01:13:51 »
Ich möchte auch mal wieder eine Frage haben. Vermutlich (so hoffe ich zumindest) habe ich schlicht ein Brett vor dem Kopf, aber ... schaut einfach mal selber:

Folgender Code solle in eine Schaltfläche kopiert werden - er soll den ersten Montag der gegebenen Kalenderwoche berechnen.
Code
_FirstDayOfYear := @Date (Year; 1; 1);
WeekNo := 7;

REM {minus null in the following term is nessecary!!!};
WeekNoMonday := @Adjust (_FirstDayOfYear; 0; 0; @Subset (@Subset (1 : [u][b][color=red]-0[/color][/b][/u] : -1 : -2 : -3 : 3 : 2; @Weekday (_FirstDayOfYear)); -1)  + ((WeekNo - 1) * 7); 0; 0; 0);

@Prompt ([Ok]; "Ergebnis"; @Text (WeekNoMonday))

Mit "-0" tut das. "0" oder "+0" - na, schaut selber. Kann mir das jemand erklären und mein Brett vor dem Kopf entfernen?

Bernhard

PS: KW 7 startet nach bei uns gebräuchlichem ISO-Standard am 15.02.2010.

PPS: Dr Code ergibt beim mir beim Entfernen des Vorzeichens vor der Null identische Ergebnisse unter R5, 6, 7 und 8. Das Posting im 7er Forum ist daher rein willkürlich.
« Letzte Änderung: 13.03.10 - 01:16:08 von koehlerbv »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Gibt es "minus Null"?
« Antwort #1 am: 13.03.10 - 08:27:33 »
in der Tat; verblüffend. Kann ich aber auch nicht erklären.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 249
  • Geschlecht: Männlich
Re: Gibt es "minus Null"?
« Antwort #2 am: 13.03.10 - 10:07:07 »
Hallo Bernhard, das war wirklich eine knifflige Frage, aber die Antwort ist umso einfacher:

Der Listentrenner ":" kommt bei der Auswertung vor dem Minuszeichen und so wird aus der Liste
1 : -0 : -1 : -2 : -3 : 3 : 2
die Liste
1 : 0 : 1 : (-2) : 3 : 3 : 2

denn die Ausgangsliste ist anscheinend so zu lesen:
1 : -(0 : -(1 : -(2 : -(3 : 3 : 2))))

Die Formel (ob diese nun so aber richtig ist habe ich nicht geprüft) sollte also um der besseren Lesbarkeit willen wie folgt verwendet werden:
Code
@Adjust (_FirstDayOfYear; 0; 0; @Subset (@Subset (1 : 0 : 1 : (-2) : 3 : 3 : 2; @Weekday (_FirstDayOfYear)); -1)  + ((WeekNo - 1) * 7); 0; 0; 0)

Schönes Wochenende!
-Werner

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Gibt es "minus Null"?
« Antwort #3 am: 13.03.10 - 15:54:53 »
Vielen Dank, Werner. So ganz geht mir aber die Beeinflussung der Listenverarbeitung durch das Vorzeichen noch nicht ein. Der Groschen wird schon noch fallen  ;)

Korrekt wäre dann folgende Formel:
Code
_FirstDayOfYear := @Date (Year; 1; 1);
WeekNo := 7;

WeekNoMonday := @Adjust (_FirstDayOfYear; 0; 0; @Subset (@Subset (1 : 0 : (-1) : (-2) : (-3) : 3 : 2; @Weekday (_FirstDayOfYear)); -1)  + ((WeekNo - 1) * 7); 0; 0; 0);

@Prompt ([Ok]; "Ergebnis"; @Text (WeekNoMonday))

Es sind also auch die anderen negativen Werte zu klammern.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz