Matroids Matheplanet Forum Index
Moderiert von matroid
Mathematik » Kombinatorik & Graphentheorie » Datum aus Tagesnummer berechnen
Druckversion
Druckversion
Autor
Kein bestimmter Bereich J Datum aus Tagesnummer berechnen
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2018-10-31


Hallo!

Heute 2018-31-10 müsste der 304. Tag des Jahres 2018 sein.

Gibt es eigentlich eine einfache Methode von der Tagesnummer 304 auf Monat und Tag zu schließen.

Excell stellt sowas bereit; ich bräuchte aber eine formelmäßige Methode.


Danke!




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
BerndLiefert
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 21.10.2014
Mitteilungen: 437
Aus: Lehramtplanet
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2018-10-31

English
if (n < 32) 
{
    month = 1;
    day = n;
}
else if (n < 60)
{
    month = 2;
    day = n-31;
}
...

Ohne Betrachtung von Schaltjahren (ist nicht möglich, da die Jahreszahl nicht zum input gehört).



-----------------
Vorsitzender der Reptiloidengilde
Träger des großen Aluhutes
Kartograph der Chemtrailflüge
Freund Gaias

An algebraic structure with less than three elements shouldn't be called a group.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2018-10-31


2018-10-31 22:01 - BerndLiefert in Beitrag No. 1 schreibt:
(ist nicht möglich, da die Jahreszahl nicht zum input gehört).

Die Jahreszahl ist auch gegeben.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Delastelle
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 17.11.2006
Mitteilungen: 1489
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2018-10-31


Hallo Cis!
Pascal
tagimjahr
Zusicherung: Tagesnummer N im Jahr J
Wenn J mod 4 = 0, dann A=1
 sonst A=0
Wenn N>59, dann H=1
 sonst H=0
Wenn H+A>0, dann B=2-L
 sonst B=0
C=N+B+91
M=[100J/3055]
T=C-[3055M/100]
M=M-2
Nachbedingung: Tag ist T.M.J mit Tagesnummer N
(Dietmar Herrmann: Algorithmen Arbeitsbuch S.205)

Viele Grüße
Ronald

Edit: was mich nur gerade stutzig macht ist das L - etwas unklar!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2018-11-01


2018-10-31 23:30 - Delastelle in Beitrag No. 3 schreibt:
Pascal
tagimjahr
Zusicherung: Tagesnummer N im Jahr J
Wenn J mod 4 = 0, dann A=1
 sonst A=0
Wenn N>59, dann H=1
 sonst H=0
Wenn H+A>0, dann B=2-L
 sonst B=0
C=N+B+91
M=[100J/3055]
T=C-[3055M/100]
M=M-2
Nachbedingung: Tag ist T.M.J mit Tagesnummer N


Das sieht gut aus.
Aber ohne dieses L ist es ein bisschen schwierig. Ist über L nichts angegeben?


Mit pgfmath:
<Siehe folgender Beitrag>







Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2018-11-01


Ich habe hier was gefunden:

Das ist ähnlich dem 1. Code, enthält aber auch seine Schlampigkeiten (scheints können beide Informatiker nicht sauber arbeiten...):
so fehlt im Code dort die floor- bzw. die ceil-Funktion:

· um M muss wohl floor
· um T muss scheints ceil

Das ceil habe ich geraten, finde beim Vergleich hier gerade keine Fehler.
Habe bisher aber auch nur das Jahr 2018 stichprobenartig getestet.

Hinweis: Und es ist wohl auch nicht einfach nur die int-Funktion (für kaufmännisches Runden) die fehlt; das könnte man vll. noch mit Informatiker-Gedöns rechtfertigen. Es muss, so wie es aussieht, in der o.g. Weise auf- und abgerundet werden, sonst wird es falsch...


Wer möchte kann ja mal den Code testen...


<math>
% \begin{tikzpicture}

\foreach \Tagesnummer in {304,203,117,85,1,365}{%%%
\pgfmathtruncatemacro{\N}{\Tagesnummer}
\pgfmathtruncatemacro{\J}{2018}

\pgfmathtruncatemacro{\A}{mod(\J,4)==0 ? 1 : 0}% J Schaltjahr?
\pgfmathtruncatemacro{\H}{\N > 59 ? 1 : 0}

\pgfmathtruncatemacro{\B}{\H>0 ? 2-\A : 0}

\pgfmathtruncatemacro{\C}{\N+\B+91}
\pgfmathsetmacro{\m}{floor(\C/30.55)}
\pgfmathtruncatemacro{\M}{\m-2}
\pgfmathsetmacro{\t}{ceil(\C-30.55*\m)}% ceil geraten
\pgfmathtruncatemacro{\T}{\M==2 ? (\t==30 ? \t-1 : \t) : \t }

Test: %N\N, A\A, H\H,  B\B, C\C, \\  m\m, M\M,  t\t, T\T,  \\
Tagesnummer \N  $~\Rightarrow~$ Datum: \T-\M-\J\\
}%%%


</math>

latex
\documentclass[margin=5mm, varwidth]{standalone}
\usepackage{tikz}
 
\begin{document}
% Datum aus Tagesnummer % https://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=238380
\foreach \Tagesnummer in {304,203,117,85,1,365}{%%%
\pgfmathtruncatemacro{\N}{\Tagesnummer}
\pgfmathtruncatemacro{\J}{2018}
 
\pgfmathtruncatemacro{\A}{mod(\J,4)==0 ? 1 : 0}% J Schaltjahr?
\pgfmathtruncatemacro{\H}{\N > 59 ? 1 : 0}
\pgfmathtruncatemacro{\B}{\H>0 ? 2-\A : 0}
\pgfmathtruncatemacro{\C}{\N+\B+91}
\pgfmathtruncatemacro{\m}{floor(\C/30.55)}
\pgfmathtruncatemacro{\t}{ceil(\C-30.55*\m)}% ceil geraten
\pgfmathtruncatemacro{\M}{\m-2}
\pgfmathtruncatemacro{\T}{\M==2 ? (\t==30 ? \t-1 : \t) : \t }
 
Test: %N\N, A\A, H\H,  B\B, C\C, \\  m\m, M\M,  t\t, T\T,  \\
Tagesnummer \N  $~\Rightarrow~$ Datum: \T-\M-\J\\
}%%%
\end{document}

PS: Ich brauche das für ein LaTeX-Dokument.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27369
Aus: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2018-11-01


2018-10-31 21:56 - cis im Themenstart schreibt:
Heute 2008-31-10 müsste
Dieses Datum ist ungültig.
Den Blödsinn, den die Amis mit dem vertauschten m/d in die Welt gesetzt haben, gibt es nur in dieser Form: m/d/y
Wenn das Jahr vorne steht, dann immer in dieser Reihenfolge: y-m-d oder ymd oder …

Gruß vom ¼


-----------------
Bild



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, vom Themenstarter, eingetragen 2018-11-01


2018-11-01 03:55 - viertel in Beitrag No. 6 schreibt:
Dieses Datum ist ungültig.
Den Blödsinn, den die Amis mit dem vertauschten m/d in die Welt gesetzt haben, gibt es nur in dieser Form: m/d/y

Das ist kein Blösinn, das ist gut. Z.B., wenn man viele Dateien in eine lexikographische Reihenfolge bringen will.
Ich habe in einem wehrtechnischen Institut gearbeitet, da haben wir Dateien immer so abgespeichert: JJJJ.MM.TT-<geheim>.<dat>



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 3533
Aus: Harz
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2018-11-01


Hallohalli,

zum Beitrag #5:

Eigentlich reicht es nicht, zu überprüfen ob das Jahr durch 4 teilbar ist, um zu bestimmen, ob es sich um ein Schaltjahr handelt ( siehe ). Allerdings tritt ein diesbetreffender Fehler erst in .. 82 Jahren auf, oder bei der Berechnung von historischen Daten.


Grüsse aus dem Harz
Gerhard/Gonz



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27369
Aus: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2018-11-01


2018-11-01 04:22 - cis in Beitrag No. 7 schreibt:
2018-11-01 03:55 - viertel in Beitrag No. 6 schreibt:
Dieses Datum ist ungültig.
Den Blödsinn, den die Amis mit dem vertauschten m/d in die Welt gesetzt haben, gibt es nur in dieser Form: m/d/y

Das ist kein Blösinn, das ist gut. Z.B., wenn man viele Dateien in eine lexikographische Reihenfolge bringen will.
Ich habe in einem wehrtechnischen Institut gearbeitet, da haben wir Dateien immer so abgespeichert: JJJJ.MM.TT-<geheim>.<dat>
Gründlicher lesen.
Blödsinn: m/d/y, in dieser Reihenfolge habe ich noch keinen Sinn entdecken können
Ok: y-m-d, d-m-y, d.m.y
Statt lexikographisch meinst du wohl eher chronologische Reihenfolge der Dateien.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, vom Themenstarter, eingetragen 2018-11-01


2018-11-01 07:56 - gonz in Beitrag No. 8 schreibt:
zum Beitrag #5:
Eigentlich reicht es nicht, zu überprüfen ob das Jahr durch 4 teilbar ist, um zu bestimmen, ob es sich um ein Schaltjahr handelt ( siehe ). Allerdings tritt ein diesbetreffender Fehler erst in .. 82 Jahren auf, oder bei der Berechnung von historischen Daten.

Das ist gut. Ich habe das mal noch eingearbeitet.

Stimmt zumnindest mit den Werten von LibreOffice überein:



latex
\documentclass[margin=5mm, varwidth]{standalone}
\usepackage{tikz}
 
\begin{document}
% Datum aus Tagesnummer % https://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=238380
\foreach \Jahr in {2015,2164,2200,2400}{\Jahr \\
\foreach \Tagesnummer in {59,60,304,203,117,85,1,365,366,367}{%%%
\pgfmathtruncatemacro{\N}{\Tagesnummer}
\pgfmathtruncatemacro{\J}{\Jahr}
 
\pgfmathtruncatemacro{\A}{mod(\J,4)==0 ? (mod(\J,100)==0 ? (mod(\J,400)==0 ? 1 : 0) : 1) : 0}% J Schaltjahr?
\pgfmathtruncatemacro{\H}{\N > 59 ? 1 : 0}
\pgfmathtruncatemacro{\B}{\H>0 ? 2-\A : 0}
\pgfmathtruncatemacro{\C}{\N+\B+91}
\pgfmathtruncatemacro{\m}{floor(\C/30.55)}
\pgfmathtruncatemacro{\t}{ceil(\C-30.55*\m)}% ceil geraten
\pgfmathtruncatemacro{\M}{\m-2}
\pgfmathtruncatemacro{\T}{\M==2 ? (\t==30 ? \t-1 : \t) : \t }
 
Test: %J\J, N\N, A\A, H\H,  B\B, C\C, \\  m\m, M\M,  t\t, T\T  \\
Tagesnummer \N  $~\Rightarrow~$ Datum: \T-\M-\J\\
}%%%
}
\end{document}


<math>
% \begin{tikzpicture}
% Datum aus Tagesnummer % https://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=238380
\foreach \Jahr in {2015,2164,2200,2400}{\Jahr \\
\foreach \Tagesnummer in {59,60,304,203,117,85,1,365,366,367}{%%%
\pgfmathtruncatemacro{\N}{\Tagesnummer}
\pgfmathtruncatemacro{\J}{\Jahr}

\pgfmathtruncatemacro{\A}{mod(\J,4)==0 ? (mod(\J,100)==0 ? (mod(\J,400)==0 ? 1 : 0) : 1) : 0}% J Schaltjahr?
\pgfmathtruncatemacro{\H}{\N > 59 ? 1 : 0}
\pgfmathtruncatemacro{\B}{\H>0 ? 2-\A : 0}
\pgfmathtruncatemacro{\C}{\N+\B+91}
\pgfmathtruncatemacro{\m}{floor(\C/30.55)}
\pgfmathtruncatemacro{\t}{ceil(\C-30.55*\m)}% ceil geraten
\pgfmathtruncatemacro{\M}{\m-2}
\pgfmathtruncatemacro{\T}{\M==2 ? (\t==30 ? \t-1 : \t) : \t }

Test: %J\J, N\N, A\A, H\H,  B\B, C\C, \\  m\m, M\M,  t\t, T\T  \\
Tagesnummer \N  $~\Rightarrow~$ Datum: \T-\M-\J\\
}%%%
}

</math>



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Delastelle
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 17.11.2006
Mitteilungen: 1489
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.11, eingetragen 2018-11-04


Hallo,

das Umgekehrte habe ich gelegentlich genutzt:
(auch aus dem Algorithmen-Arbeitsbuch)
Aus Tag, Monat, Jahr den Tag im Jahr berechnen.
Matlab
function n = tagnr(t,m,j)
% Tag im Jahr
a =   4 * (j/4   - floor(j/4));
b = 100 * (j/100 - floor(j/100));
c = 400 * (j/400 - floor(j/400));
d = floor((m+10)/13);
e = floor(t + 3055*((m+2)/100)-2*d-91);
n = (e + (1 - floor( (a+3)/4 ) + floor( (b+99) / 100) - floor( (c+399)/400) )*d);

Schön, dass Cis aus den Code-Fragmenten eine Lösung bauen konnte!

Viele Grüße
Ronald



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ex_Senior hat die Antworten auf ihre/seine Frage gesehen.
Ex_Senior hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]