Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: schmidti88 am 23.02.09 - 12:14:19

Titel: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 12:14:19
Hallo!
Habe nun ein wenig gegooglet und hier im Forum gelesen!
Bin gerade dabei, das Alter berechnen zu lassen!


Ich möchte eigentlich das Alter in einer Feld ausgeben lassen, dachte das geht mit der Formel:

@If (@IsTime (GeburtstagDatum); (@Today -GeburtstagDatum); "")

Und anschließend möchte ich noch eine Ansicht basteln, wo nur die Leute drin stehen, die am aktuellen tag geburtstag haben!


könnt ihr mir da nochmal bei helfen?
wäre nett!
Titel: Re: Geburtstagsberechnung
Beitrag von: m3 am 23.02.09 - 12:22:39
Ja. Benutz doch mal z.B. die Forumssuche, was diese zum Thema Views und Datumswerte zu sichen hat.

Des weiteren hilft es, wenn Du konkrete Fragen stellen würdest.
http://www.tty1.net/smart-questions_de.html#explicit
Titel: Re: Geburtstagsberechnung
Beitrag von: ghost am 23.02.09 - 13:17:01
Aus der Designer Hilfe:

Dates can be compared and subtracted. Subtraction yields a numeric value representing seconds. To measure the difference between two dates in days, divide the result by 86,400, which is the number of seconds in a day. For example, if you have two date fields, date1 containing [07/01/01] and date2 containing [07/05/01], the following returns 345,600:
date2-date1
To display the result as 4 days instead of 345,600 seconds, use the following code:
(date2-date1)/86,400
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 13:18:24
Habe leider keine Themen gefunden bezüglich

Nehme Wert 1 aus Feld1 und Nehme Wert 2 aus Feld2 und subtrahiere Feld2 von Feld1!

sry, habe noch keine ahnung, wie ich das am besten machen soll!
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 13:22:33
Nachdem Dir der Geist nun die entsprechende Passage aus der DesignerHelp herausgesucht hat, sollte die Frage doch geklärt sein, oder?

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 13:34:58
Nein, leider nicht!

Denn ich bekomme folgende Fehlermeldung:
Falscher Datentyp für Operator oder @Funktion
Titel: Re: Geburtstagsberechnung
Beitrag von: m3 am 23.02.09 - 13:42:19
Kann es sein, dass es sich bei Deinem Feld "GeburtstagDatum" um ein Textfeld und nicht um ein Datumsfeld handelt?
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 13:46:03
Nein 3 Datumsfeld, wobei eins mit @now den aktuellen wert holt!
Titel: Re: Geburtstagsberechnung
Beitrag von: tks am 23.02.09 - 13:52:36
Das Ergebnis der Berechnung ist aber kein Datum, sondern eine Zahl.
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 13:55:25
ok, habe ich geändert!
funktioniert aber leider trotzdem nicht!
gleicher Fehler!


danke für eure hilfe!
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 14:00:13
Da unsere Kristallkugeln eingeschneit sind, malst Du uns jetzt einmal auf, was für Felder Du hast, welche Typen das sind und wo welche Formel steht.

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 14:09:15
ok, danke für die hilfe:

also:

GeburtstagDatum; Datum/Zeit, Bearbeitbar -> Anweder soll Geburtstag eingeben
Alter; Datum/Zeit, Berechnet (Formel: @now) -> Notes soll aktuelles Datum hinschreiben
Berechnung; Zahl, Berechnet (Formel: GeburtstagDatum-Alter)


so, das sind die Feld, die ich dazu habe!
Folgende Fehlermeldung bekomme ich:
Feld Berechnung: Falscher Dateityp für Operator oder @Funktion
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 14:43:00
Hast Du das @IsTime wieder herausgenommen? Du bekommst die Meldung doch bestimmt bei der Anlage eines neuen Dokuments ...

Bernhard

PS: Für die Feldnamen würde Dich ein anderer Entwickler, der später mal mit Deinem Code zu tun bekommt, erschlagen: Alter ist Blödsinn (weil falsch), und Berechnet ebenso (weil nichtssagend)
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 14:53:32
ja das ist wieder draußen! dachte benötige ich nicht mehr!

Berechnet heißt ja kein Feld, sondern habe ich als berechnet ausgewählt beim anlegen!
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 14:59:00
"Berechnet" (mein Schreibfehler!) oder "Berechnung" als Feldname ist Jacke wie Hose.

Was Du nun aber weiter willst, bleibt im Dunklen: Funktioniert Deine uns unbekannte Formel nun oder nicht?

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 15:12:42
nein, wie gesagt, die formeln sind so:

Alter: Formel: @now -> Notes soll aktuelles Datum hinschreiben
Berechnung: Formel: GeburtstagDatum-Alter

Und dann kommt die besagte Fehlermeldung!

ich weiß, Berechnung hört sich doof an! Aber ist ja mom nur zu Testzwecke!
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 15:16:45
Und dann kommt ...

WANN kommt ... Das es bei DIESER Formel kommen muss, hatten wir ja schon!

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 15:18:51
wenn ich ein neues Dokument schreiben will!
sry, vergessen zu schreiben!
Titel: Re: Geburtstagsberechnung
Beitrag von: tks am 23.02.09 - 15:22:16
Also ich hab das jetzt mal auf die Schnelle nachgebaut.

Feld gebdt, Typ Datum/Zeit, bearbeitbar
Feld jetzt, Typ Datum/Zeit, berechnet (@Now)
Feld age, Typ Zahl, berechnet (@If(@IsTime(gebdt);jetzt - gebdt;0))

Und wenn ich jetzt mein Geburtsdatum in gebdt eintrage und F9 drücke bin ich viele, viele Sekunden alt.
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 15:27:17
es funtkioniert!  ;D ;D ;D danke danke danke :D
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 15:32:36
Auf dem Stand waren wir aber bereits beim Ausgangsposting. Was hast Du also die ganze Zeit getrieben, wenn es schon anfangs korrekt war?

Noch ein Hinweis: Das Feld, das @Now enthält, ist doppelt unsinnig: Erstens wird es nicht benötigt, und zweitens macht man sowas bestenfalls Berechnet zur Anzeige. Warum sollte man @Now speichern? Eine Stunde nach Speicherung bin ich ja schon wieder 3600 Sekunden älter (und dadurch sogar ggf. im nächsten Lebensjahr  ;)).

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: eknori am 23.02.09 - 15:43:07
So eine Ansicht mit der Berechnung des Alters gibt es übrigens im pers. Adressbuch
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 15:46:46
habe nun @now mit in die berechnung gebracht, sodass ich kein feld dazu benötige - muss man ja alles erst mal wissen!

jetzt zeigt er mir allerdings an, dass ich 20,5099393 Jahre alt bin!
kann ich noch sagen, dass er nur 20 anzeigen soll?
ich mein, blende ich die dezimalstellen aus, so bin ich 21, weil er aufrundet!

wisst ihr was ich meine?
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 15:52:25
Liest Du überhaupt, was man Dir schreibt? Hast Du den Eintrag vom "Ghost" missachtet??

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 23.02.09 - 16:08:47
oh, sry! hatte ich eben gelesen, aber gar nicht mehr dran gedacht!

funktioniert jetzt alles wie es soll! danke nochmal!
Titel: Re: Geburtstagsberechnung
Beitrag von: koehlerbv am 23.02.09 - 16:14:05
Hast Du das ganze auch getestet mit einem Geburtstag am gestrigen und am morgigen Tag? Wenn man nicht aufpasst, kann man hier von der Rundungsfalle eingeholt werden.

Bernhard
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 24.02.09 - 09:36:36
jep, auch das hat funktioniert!
allerdings habe ich jetzt ein anders Problem bezüglich der Geburtstagsberechnung!
dazu aber ein neuer Thread!
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 24.02.09 - 13:57:51
Aus der Designer Hilfe:

Dates can be compared and subtracted. Subtraction yields a numeric value representing seconds. To measure the difference between two dates in days, divide the result by 86,400, which is the number of seconds in a day. For example, if you have two date fields, date1 containing [07/01/01] and date2 containing [07/05/01], the following returns 345,600:
date2-date1
To display the result as 4 days instead of 345,600 seconds, use the following code:
(date2-date1)/86,400


Hallo!
Ich habe nochmal ein Problem bezüglich der Zeitrechnung!
Habe mir mal Gedanken gemacht, wie ich es am besten machen könnte!
Nach dem Muster oben funktionierte es zwar, allerdings nciht richtig!

aus diesem grund habe ich folgende formel eingegeben:

Code
@Integer(@If(@IsTime(GeburtstagDatum);(@Now - GeburtstagDatum)/60/60/24/365;0))
Im Prinzip her ist es genauso wie oben, nur dass ich die Zahlen einzeln habe!
Um dann auch noch ganze Zahlen anzeigen zu lassen, habe ich das ganze als Integer geschrieben!
Funktioniert auch soweit!

Nur, ich dachte gestern es geht, stimmt die Berechnung doch nicht ganz!
Der nette Max Mustermann ist nämlich auf Grund der Schaltjahre noch ein paar Tage länger 21!

Wie kann ich das am besten umgehen? Danke für eure Hilfe!
Titel: Re: Geburtstagsberechnung
Beitrag von: Glombi am 24.02.09 - 15:39:17
Lies mal hier

http://atnotes.de/index.php/topic,18281.0.html
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 26.02.09 - 10:01:27
Hallo!
Danke für den Link:
Habe das nun wie folgt probiert:

Feld EintrittDatum, Bearbeitbar, Kalenderfunktion
Feld EintrittsDatumBerechung, Berechnet, Zahl

Nun habe ich folgende Formel im Feld EintrittsDatumBerechnung:
Code
datum :=(Umwandlung);
tmp1   := @Date(@Year(@Now);@Month(datum);@Day(datum));
tmp2   := (@Now-tmp1)/86400;
tmp3   := @Year(@Now) - @Year(datum);
@If(tmp2 > -1; tmp3; tmp3 - 1)

Beim Austesten erhalte ich folgende Fehlermeldung bekommen:
Zitat
Feld Eintrittsdatumberechnung: Falscher Datentyp für Operator @Funktion: Zeit/Datum erwartet


Dann habe ich dies ausgetestet und gemerkt, wenn ich das Feld Eintrittsdatum nun in ein Zahl Format umwandle, klappt die Datumsberechung gut!

Ich benötige allerdings für das Feld Eintrittsdatum Zeit/Datum!
Was kann ich nun machen?
Dachte vielleicht über ein weiteres verstecktes Feld?!?

Im Prinzip brauch ich nur ein Feld, welches
Nehme Wert aus Feld EintrittsDatum und wandele es in ein Zahlenformat um)!

Danke für eure Hilfe, gruß
schmidti88
Titel: Re: Geburtstagsberechnung
Beitrag von: schmidti88 am 26.02.09 - 12:08:39
Meine Überlegungen sind soweit:

Code
FIELD Umwandeln := (EintrittDatum);
datum := (@TextToTime(Umwandeln));
tmp1   := @Date(@Year(@Now);@Month(datum);@Day(datum));
tmp2   := (@Now-tmp1)/86400;
tmp3   := @Year(@Now) - @Year(datum);
FIELD EintrittsdatumBerechnung := @If(tmp2 > -1; tmp3; tmp3 - 1);

aber nun rechnet er kein Alter mehr aus!
wo ist der fehler?