<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Datumberechnung: Jeder Montag von dieser Woche an]]></title><description><![CDATA[<p>Hallole.<br />
Ich stoße nun auf ein mir bisher unbekannter Thema:<br />
Datumsberechnung.</p>
<p>Und zwar folgendes:<br />
Ich bekomme von einer Software das Datum für den Montag der aktuellen Woche.</p>
<p>Ich sollte nun von diesem Datum an für 10 Folgewochen den Montag + die restlichen Wochentage berechnen.<br />
Das soll einer Übersicht dienen die eben mit dem Montag anfängt.<br />
Ich bekomme also zb für diese Woche den 9.04.2007 geliefert und muss aus Basis von diesem die nächsten 10 Montage ausrechnen.<br />
Schau ich in den Kalender, so wäre das der 16.4 ,23.4,30.4, usw.<br />
Doch wie berechne ich dieses Datum auch dann Monats und Jahresübergreifend?<br />
Ich sollte ja dann auch ausgehend von jedem Montag die restlichen Tage der Woche berechnen.<br />
Doch was wenn mitten in der Woche ein neuer MOnat oder ein neues Jahr anfängt(Soll ja vorkommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
<p>ICh habe nun gedacht, daß ich mit mktime und srftime arbeite.<br />
Also daß ich der aktuelle MOntag auf die Tage des Jahres runterrechne und anhand von dem dann addiere.</p>
<p>Also der 9.4.2007 ist der 99 tag des Jahres +7(also nächstes MOntag) wäre dann der 106 tag.<br />
Nur wie kann ich das zurückrechnen?<br />
Ich kann doch nicht für jeden TAg das neu ausrechnen?<br />
Gibts da Funktionen dafür?</p>
<p>Hier mal ein Ansath bei dem ich nicht weiterkomme:</p>
<pre><code>akt_tag=boost::lexical_cast&lt;unsigned int&gt;(str_akt_tag);
akt_mon=boost::lexical_cast&lt;unsigned int&gt;(str_akt_mon);
akt_jahr=boost::lexical_cast&lt;unsigned int&gt;(str_akt_jahr);

/* Initialisiere struct tm mit dem 9.4.2007 */
memset( &amp;mydate, 0, sizeof(mydate));
mydate.tm_mday = akt_tag;
mydate.tm_mon = akt_mon - 1; 
ydate.tm_year = akt_jahr - 1900;

mktime( &amp;mydate);    

strftime( msg, sizeof(msg), &quot;Der %j. Tag des Jahres.\n&quot;, &amp;mydate);
</code></pre>
<p>Also in dem %j steht der 099 tag des Jahres.<br />
wie komme ich hier nun weiter?<br />
Schätze mal dsa Ansatz ist etwas umständlich, vielleicht hat einer von Euch eine Idee?<br />
Gibts was boost-mäßiges?</p>
<p>Danke mal Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178578/datumberechnung-jeder-montag-von-dieser-woche-an</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 23:23:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178578.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Apr 2007 12:17:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datumberechnung: Jeder Montag von dieser Woche an on Thu, 12 Apr 2007 13:06:23 GMT]]></title><description><![CDATA[<p>Hallole.<br />
Ich stoße nun auf ein mir bisher unbekannter Thema:<br />
Datumsberechnung.</p>
<p>Und zwar folgendes:<br />
Ich bekomme von einer Software das Datum für den Montag der aktuellen Woche.</p>
<p>Ich sollte nun von diesem Datum an für 10 Folgewochen den Montag + die restlichen Wochentage berechnen.<br />
Das soll einer Übersicht dienen die eben mit dem Montag anfängt.<br />
Ich bekomme also zb für diese Woche den 9.04.2007 geliefert und muss aus Basis von diesem die nächsten 10 Montage ausrechnen.<br />
Schau ich in den Kalender, so wäre das der 16.4 ,23.4,30.4, usw.<br />
Doch wie berechne ich dieses Datum auch dann Monats und Jahresübergreifend?<br />
Ich sollte ja dann auch ausgehend von jedem Montag die restlichen Tage der Woche berechnen.<br />
Doch was wenn mitten in der Woche ein neuer MOnat oder ein neues Jahr anfängt(Soll ja vorkommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
<p>ICh habe nun gedacht, daß ich mit mktime und srftime arbeite.<br />
Also daß ich der aktuelle MOntag auf die Tage des Jahres runterrechne und anhand von dem dann addiere.</p>
<p>Also der 9.4.2007 ist der 99 tag des Jahres +7(also nächstes MOntag) wäre dann der 106 tag.<br />
Nur wie kann ich das zurückrechnen?<br />
Ich kann doch nicht für jeden TAg das neu ausrechnen?<br />
Gibts da Funktionen dafür?</p>
<p>Hier mal ein Ansath bei dem ich nicht weiterkomme:</p>
<pre><code>akt_tag=boost::lexical_cast&lt;unsigned int&gt;(str_akt_tag);
akt_mon=boost::lexical_cast&lt;unsigned int&gt;(str_akt_mon);
akt_jahr=boost::lexical_cast&lt;unsigned int&gt;(str_akt_jahr);

/* Initialisiere struct tm mit dem 9.4.2007 */
memset( &amp;mydate, 0, sizeof(mydate));
mydate.tm_mday = akt_tag;
mydate.tm_mon = akt_mon - 1; 
ydate.tm_year = akt_jahr - 1900;

mktime( &amp;mydate);    

strftime( msg, sizeof(msg), &quot;Der %j. Tag des Jahres.\n&quot;, &amp;mydate);
</code></pre>
<p>Also in dem %j steht der 099 tag des Jahres.<br />
wie komme ich hier nun weiter?<br />
Schätze mal dsa Ansatz ist etwas umständlich, vielleicht hat einer von Euch eine Idee?<br />
Gibts was boost-mäßiges?</p>
<p>Danke mal Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264603</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Thu, 12 Apr 2007 13:06:23 GMT</pubDate></item><item><title><![CDATA[Reply to Datumberechnung: Jeder Montag von dieser Woche an on Thu, 12 Apr 2007 12:22:39 GMT]]></title><description><![CDATA[<p>Der Ansatz sieht schonmal gar nicht so schlecht aus. Der nächste Montag ist von hier aus genau 7 Tage = 604800 Sekunden weiter, also kannst du dir den Rückgabewert von mktime() nehmen, dort n*604800 draufaddieren und das Ergebnis mit gmtime() wieder in ein lesbares Format aufdröseln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264609</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to Datumberechnung: Jeder Montag von dieser Woche an on Thu, 12 Apr 2007 14:24:52 GMT]]></title><description><![CDATA[<p>Coole sache, vielen Dank.<br />
Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264726</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Thu, 12 Apr 2007 14:24:52 GMT</pubDate></item><item><title><![CDATA[Reply to Datumberechnung: Jeder Montag von dieser Woche an on Fri, 13 Apr 2007 10:21:51 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Der Ansatz sieht schonmal gar nicht so schlecht aus. Der nächste Montag ist von hier aus genau 7 Tage = 604800 Sekunden weiter, also kannst du dir den Rückgabewert von mktime() nehmen, dort n*604800 draufaddieren und das Ergebnis mit gmtime() wieder in ein lesbares Format aufdröseln.</p>
</blockquote>
<p>achtung: du darfst hier die sommerzeit/winterzeit umstellung nicht vergessen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265185</guid><dc:creator><![CDATA[GeorgV]]></dc:creator><pubDate>Fri, 13 Apr 2007 10:21:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datumberechnung: Jeder Montag von dieser Woche an on Fri, 13 Apr 2007 10:39:01 GMT]]></title><description><![CDATA[<p>Jo ich habs nun mit localtime gemacht, da wird Sommer/Winterzeit gleich mitberechnet, wenn ich die Doku richtig gelesen habe.</p>
<p>Grüße Mondmann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265200</guid><dc:creator><![CDATA[Mondmann]]></dc:creator><pubDate>Fri, 13 Apr 2007 10:39:01 GMT</pubDate></item></channel></rss>