<?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[tage -&amp;gt; stunden....]]></title><description><![CDATA[<p>ich habe aus getickcount() die millisekunden seit dem letzten bootvorgang...</p>
<p>ich kann diesen wert umwandeln nach tage z.b. 0,876 Tage...</p>
<p>wie kann ich diesen dword typ aufdröseln nach x d, x h, x min, x s....?</p>
<p>ich kann die 0,876 mit 24 multiplizieren dann hab i stunden (21,024)...<br />
jetzt müssen die 21 weg also 0,024*60 um auf minuten zu kommen usw....</p>
<p>weiss jemand ne gute funktion dies zu realisieren.... ohne aufwendige schleifen etc....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192993/tage-gt-stunden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 20:56:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192993.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Sep 2007 18:06:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Thu, 20 Sep 2007 18:06:28 GMT]]></title><description><![CDATA[<p>ich habe aus getickcount() die millisekunden seit dem letzten bootvorgang...</p>
<p>ich kann diesen wert umwandeln nach tage z.b. 0,876 Tage...</p>
<p>wie kann ich diesen dword typ aufdröseln nach x d, x h, x min, x s....?</p>
<p>ich kann die 0,876 mit 24 multiplizieren dann hab i stunden (21,024)...<br />
jetzt müssen die 21 weg also 0,024*60 um auf minuten zu kommen usw....</p>
<p>weiss jemand ne gute funktion dies zu realisieren.... ohne aufwendige schleifen etc....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369591</guid><dc:creator><![CDATA[toxi]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:06:28 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Thu, 20 Sep 2007 18:25:48 GMT]]></title><description><![CDATA[<p>ehm kannst entweder nen timestamp draus machen und dann die ctime-Funktionen nutzen und ansonsten einfach in einen integer casten und den dann wieder in double. Die Differenz von Ausgangszahl und gecasteter Zahl ist dann bei deinem Beispiel 0.024 ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369620</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:25:48 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Thu, 20 Sep 2007 18:34:21 GMT]]></title><description><![CDATA[<p>das ist eigentlich ne gute idee....</p>
<p>geht das wenn i sage</p>
<p>double day;</p>
<p>int tage = int (days);</p>
<p>double tage;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369627</guid><dc:creator><![CDATA[toxi]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:34:21 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Thu, 20 Sep 2007 18:46:36 GMT]]></title><description><![CDATA[<p>Ehm hab es dir jetzt mal so das du es entschlüsseln kannst (also ganz unoptimiert) aufgeschrieben ...</p>
<pre><code class="language-cpp">struct lasttime
{
	unsigned char day;
	unsigned char hour;
	unsigned char min;
	unsigned char sec;
	unsigned char ms;
};

void calculate_lasttime(unsigned long ms, lasttime&amp; dest)
{
	dest.day = static_cast&lt;unsigned char&gt;(ms / (1000 * 60 * 60 * 24));
	ms -= dest.day * (1000 * 60 * 60 * 24);
	dest.hour = static_cast&lt;unsigned char&gt;(ms / (1000 * 60 * 60));
	ms -= dest.hour * (1000 * 60 * 60);
	dest.min = static_cast&lt;unsigned char&gt;(ms / (1000 * 60));
	ms -= dest.min * (1000 * 60);
	dest.sec = static_cast&lt;unsigned char&gt;(ms / (1000));
	dest.ms = ms - dest.sec * (1000);
}
</code></pre>
<p>...</p>
<p>aja:</p>
<pre><code class="language-cpp">struct lasttime
{
	unsigned char day;
	unsigned char hour;
	unsigned char min;
	unsigned char sec;
	unsigned char ms;
	lasttime(unsigned char day, unsigned char hour, unsigned char min, unsigned char sec, unsigned char ms) 
		: day(day), hour(hour), min(min), sec(sec), ms(ms) {}

	friend std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const lasttime&amp; last)
	{
		out &lt;&lt; static_cast&lt;unsigned short&gt;(day) &lt;&lt; &quot;d &quot; 
			&lt;&lt; static_cast&lt;unsigned short&gt;(hour) &lt;&lt; &quot;h &quot; 
			&lt;&lt; static_cast&lt;unsigned short&gt;(min) &lt;&lt; &quot;min &quot; 
			&lt;&lt; static_cast&lt;unsigned short&gt;(sec) &lt;&lt; &quot;s &quot; 
			&lt;&lt; static_cast&lt;unsigned short&gt;(ms) &lt;&lt; &quot;ms&quot;;
		return out;
	}
	std::string str() const { std::ostringstream ss; ss &lt;&lt; *this; return ss.str(); } 
};

void calculate_lasttime(unsigned long ms, lasttime&amp; dest)
{
	dest.day = static_cast&lt;unsigned char&gt;(ms / 86400000);
	ms -= dest.day * 86400000;
	dest.hour = static_cast&lt;unsigned char&gt;(ms / 3600000);
	ms -= dest.hour * 3600000;
	dest.min = static_cast&lt;unsigned char&gt;(ms / 60000);
	ms -= dest.min * 60000;
	dest.sec = static_cast&lt;unsigned char&gt;(ms / 1000);
	dest.ms = ms - dest.sec * 1000;
}
</code></pre>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1369635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369635</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 20 Sep 2007 18:46:36 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Fri, 21 Sep 2007 09:30:22 GMT]]></title><description><![CDATA[<p>das ganze würde aber auch mir floor gehen ??? ^^ soviel code für ne simple rechnung :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1369950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1369950</guid><dc:creator><![CDATA[toxi]]></dc:creator><pubDate>Fri, 21 Sep 2007 09:30:22 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Fri, 21 Sep 2007 10:36:23 GMT]]></title><description><![CDATA[<p>Geht auch ein klein wenig kuerzer und vor allem ohne das rumgecaste:</p>
<pre><code class="language-cpp">struct lasttime
{
	unsigned char day;
	unsigned char hour;
	unsigned char min;
	unsigned char sec;
	unsigned char ms;
};

void calculate_lasttime(unsigned long ms, lasttime&amp; dest)
{
  dest.ms = ms % 1000; //modulo liefert den Rest
  ms /= 1000; //integerdivision rundet immer ab, jetzt steht in ms die zahl der sekunden
  dest.sec = ms % 60;
  ms /=60;
  dest.min = ms % 60;
  ms /= 60;
  dest.hour = ms % 24;
  dest.day = ms / 24;
}
</code></pre>
<p>/edit: hab mir das nicht genau genug angeguckt, (D)Evil kann auch einfach seine casts streichen und die implizierte Konvertierung fuer sich arbeiten lassen. Ist ja auch nur integerdivision was er da macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370011</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 21 Sep 2007 10:36:23 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Sun, 23 Sep 2007 07:29:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">DWORD Start = GetTickCount();

   double start = double (Start);

   double day;
   double hour;
   double min1;
   double sec1;

start = start / (60*60*24*1e3);

day = floor(start);
hour = start * 24;
hour = floor(hour);

min1 = start * 24;
min1 = min1 - hour;
min1 = min1 * 60;
min1 = floor(min1);

sec1 = start * 24;
sec1 = sec1 - hour;
sec1 = sec1 *60;
sec1 = sec1 - min1;
sec1 = sec1 * 60;
sec1 = floor(sec1);

  cout &lt;&lt; &quot;\n\tSystem Uptime:\t&quot; &lt;&lt; day &lt;&lt;&quot; Tage, &quot; &lt;&lt; hour &lt;&lt; &quot; Stunden, &quot; &lt;&lt; min1 &lt;&lt; &quot; Minuten, &quot; &lt;&lt; sec1 &lt;&lt; &quot; Sekunden  &quot; &lt;&lt; endl;
</code></pre>
<p>oder auch so :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370911</guid><dc:creator><![CDATA[toxi]]></dc:creator><pubDate>Sun, 23 Sep 2007 07:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to tage -&amp;gt; stunden.... on Sun, 23 Sep 2007 10:18:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>: Er gibt dann halt bloß, wenn man in meiner Variante die casts wegstreicht, eine Warnung aus ... &quot;Treat Warning as Error&quot;-Flag macht einem dann Probleme <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1370965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1370965</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 23 Sep 2007 10:18:22 GMT</pubDate></item></channel></rss>