Autor Thema: Datum in Julianisches Dastum umwandeln  (Gelesen 11929 mal)

Offline designi

  • Frischling
  • *
  • Beiträge: 16
Datum in Julianisches Dastum umwandeln
« am: 10.12.07 - 09:19:55 »
Hallo,

ich habe ein Feld, dass das Kalender-/Uhrzeit-Steuerelement benutzt und somit das ausgewählte Datum anzeigt. Nun möchte ich ein weiteres Feld haben, dass das eben gewählte Datum in das Julianische Datum berechnet.

Beispiel: aus 10.12.2007 wird 07344

Kann mir jemand helfen?

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Datum in Julianisches Dastum umwandeln
« Antwort #1 am: 10.12.07 - 09:23:50 »
Ja, Wikipedia ist Dein Freund!

Das astronomische Julianische Datum kann nach dem folgendem Algorithmus aus einem im Julianischen oder Gregorianischen Kalender gegebenen Datum berechnet werden (das Julianische Datum darf nicht negativ sein):

Code
   wenn Monat>2 dann  Y = Jahr, M = Monat
                sonst Y = Jahr-1, M = Monat+12
    
   D = Tag 
    
   H = Stunde/24 + Minute/1440 + Sekunde/86.400
    
   wenn Gregorianischer_Kalender dann  A = Int(Y/100), B = 2 - A + Int(A/4)    // gregorianisch
                                 sonst B = 0                                   // julianisch
     
   JD = Int(365,25*(Y+4716)) + Int(30,6001*(M+1)) + D + H + B - 1524,5

Die Variablen Tag, Monat, Jahr, Stunde, Minute und Sekunde enthalten die Bestandteile des zu bearbeitenden Datums, das Ergebnis wird in JD zurückgegeben. Die Funktion Int schneidet die Nachkommastellen einer Zahl ab.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline designi

  • Frischling
  • *
  • Beiträge: 16
Re: Datum in Julianisches Dastum umwandeln
« Antwort #2 am: 10.12.07 - 09:38:06 »
Jo ein ganz großes Puuhhhhhh,

aber erstmal danke!!!

Wie soll ich das jetzt am besten schnellstmöglich im Feld als Eingabeumsetzung bzw. Formel realisieren??

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Datum in Julianisches Dastum umwandeln
« Antwort #3 am: 10.12.07 - 17:08:18 »
Hallo Designi,

ich habe mal in der journal-Datenbank zwei zusätzliche Felder gebastelt: datum und test.

dann habe ich eine schaltfläche erstellt, hinter der sich folgender code versteckt:

Code
Jahr := @Year(datum);
Monat := @Month(datum);
Tag := @Day(datum);

y := Jahr + ((Monat - 2,85) / 12);
A := @Integer(367 * y) - 1,75 *@Integer( y) + Tag;
B:=  @Integer(A) - 0,75 * @Integer(y / 100);
JD := @Integer(B) + 1721115;

@SetField( "test" ; JD)

Das ist im Übrigen die Berechnungsformel für das chronologische Julianische Datum, das Du ebenfalls in dem Wiki-Artikel findest (für die ausführlichere Berechnung fehlt mir gerade die Zeit, müsste aber ähnlich funktionieren).

Zitat
Chronologisches Julianisches Datum [Bearbeiten]

Das chronologische Julianische Datum wird ebenfalls ab dem 1. Januar –4712 gezählt, aber nur in ganzzahligen Tagesschritten. Es entspricht dem astronomischen Julianischen Datum für 12h mittags.

Berechnung [Bearbeiten]

Der folgende Pseudocode berechnet aus einem Datum im gregorianischen Kalender das chronologische Julianische Datum:

   y  = Jahr + (Monat - 2.85) / 12
   A  = Int(367 * y) - 1.75 * Int(y) + Tag
   B  = Int(A) - 0.75 * Int(y / 100)
   JD = Int(B) + 1721115

Die Variablen Tag, Monat und Jahr enthalten die Bestandteile des zu bearbeitenden Datums, die Variablen y, A und B sind Hilfsgrößen der Berechnung und das Ergebnis wird in JD zurückgegeben. Int steht für das Abschneiden der Nachkommastellen.

Das führt (bei mir zumindest) zu den im Artikel erwähnten Ergebnissen.

Ach so:

Zitat
Beispiel: aus 10.12.2007 wird 07344

aus 10.12.2007 wird 2454445

HTH

Thomas
« Letzte Änderung: 10.12.07 - 17:13:19 von thoge »
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline designi

  • Frischling
  • *
  • Beiträge: 16
Re: Datum in Julianisches Dastum umwandeln
« Antwort #4 am: 11.12.07 - 09:34:05 »
hey thoge,

einfach nur geil. fürs erste. :-)

jetzt muss ich natürlich die Zahl 2454445 zum Ergebnis 7344 bringen.

7 ergibt sich ja aus der Endziffer Jahreszahl und 344 ist der Tag im Jahr.

Hast Du noch eine Idee? Bin ziemlich sicher bei Dir!!!

Gruß designi

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datum in Julianisches Dastum umwandeln
« Antwort #5 am: 11.12.07 - 09:48:11 »
Was soll das? Erst wird nach dem Julianischem Datum gefragt, jetzt geht es auf einmal um eine ominöse 7344 ...

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Datum in Julianisches Dastum umwandeln
« Antwort #6 am: 11.12.07 - 13:17:26 »
Ich glaube er will sowas.

Das ist zwar jetzt JavaScript, aber die Berechnungsgrundlagen sind da drin.
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Datum in Julianisches Dastum umwandeln
« Antwort #7 am: 11.12.07 - 13:24:56 »
Hallo disigni,

mit meinem Lösungsansatz hast Du ja die fortlaufende Zahl des Tages im julianischen Kalender.

Dann kannst Du Dir ähnlich den 01.01. eines jeden Jahres errechnen lassen.

Vom Ergebnis des heutigen Tages substrahierst Du den 01.01. des entsprechenden Jahres und addierst hierzu eine 1, damit die Nummerierung auch bei 1 beginnt.

Damit hast Du dann in Deinem Bespiel die 344.

Die Jahreszahl kannst Du z.B. mit einer @Right-Formel basteln.

Dann setzt Du die beiden Ergebnisse zusammen und bist fertig.

Ein Tip noch: Es gibt feststehende Begriffe. Der Julianische Kalender ist ein solcher.

Was Du willst, ist eine einfache Berechnung des laufenden Tages eines Jahres, wobei Du den julianischen Kalender als Berechnungsgrundlage (weil mit den Ergebnissen einfacher zu rechnen ist).

Dir ist schon klar, dass ich Dir keine fertige Lösung präsentieren möchte, aber die Hinweise sind glaube ich, verständlich.

HTH

Thomas

@tks

es scheint, wir hätten ähnliche Quellen  ;)
« Letzte Änderung: 11.12.07 - 13:26:28 von thoge »
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline tks

  • Senior Mitglied
  • ****
  • Beiträge: 425
  • Geschlecht: Männlich
  • ...für'n Fuss
Re: Datum in Julianisches Dastum umwandeln
« Antwort #8 am: 11.12.07 - 13:30:05 »
mein Freund heisst "Google"  ;D
Thomas

*********************************
Domino 8.5.3FP6 unter W2K12
Notes 8.5.3 unter Win7
sequrIQ (watchdog & crypt)
*********************************

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Datum in Julianisches Dastum umwandeln
« Antwort #9 am: 11.12.07 - 13:35:50 »
Zufälle gibt's, den kenne ich auch  ;D ;D
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline designi

  • Frischling
  • *
  • Beiträge: 16
Re: Datum in Julianisches Dastum umwandeln
« Antwort #10 am: 12.12.07 - 10:05:27 »
Hallo nochmal,

allen beteiligten ein herzliches Dankeschön. Habe es jetzt mit einigen Formeln hinbekommen.

Gruß
Designi

Offline thoge

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 533
  • Geschlecht: Männlich
Re: Datum in Julianisches Dastum umwandeln
« Antwort #11 am: 12.12.07 - 10:18:36 »
Hallo Designi,

gerne geschehen.

Könntest Du uns Deine Formelsammlung oder Lösungsweg bitte noch mitteilen.

Ich denke, das die Aufgabenstellung eine schöne Fingerübung ist und andere an der Art und Weise, wie man mit "mathematischen" Problemen innerhalb Notes umgehen kann, partizipieren können.

Vielen Dank dafür.

Thomas
s 6.5.5 w2k3 5
c 6.5.5 wxpp 180

Offline designi

  • Frischling
  • *
  • Beiträge: 16
Re: Datum in Julianisches Dastum umwandeln
« Antwort #12 am: 12.12.07 - 11:18:24 »
Jo aber klar.

So gehts:

Jahr:= @Year(Feld);
Monat:= @Month(Feld);
Tag:= @Day(Feld);

y:= Jahr + ((Monat - 2,85) / 12);
A:= @Integer(367 * y) - 1,75 *@Integer(y) + Tag;
B:= @Integer(A) - 0,75 * @Integer(y / 100);
JD:= @Integer(B) + 1721115;

z:= Jahr + ((1 - 2,85) / 12);
C:= @Integer(367 * z) - 1,75 *@Integer(z) + 1;
D:= @Integer(C) - 0,75 * @Integer(z / 100);
JB:= @Integer(D) + 1721115;

JK:= @Integer(1000) * (@Integer(Jahr - 2000));

x:=@Integer(JD) - @Integer(JB) + @Integer(JK);

@SetField("Ausgabefeld";x)


Das ganze wird im Ausgabefeld angezeigt.
Die Formel selber steht in einer Aktions-Schaltfläche.

Gruß
Designi

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz