<?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[UTC Zeit ist Float?????]]></title><description><![CDATA[<p>Hi,</p>
<p>ich soll für Objekte (Auto, Zug, Fußgänger,...) Kollisionen berechnen.<br />
Jedes Object hat eine Zeitangabe vom Typ &quot;float&quot;.<br />
z.B.: Cars(0)-&gt;point(0)-&gt;utc_time. Eine Ausgabe mit printf(&quot; Zeit Auto: %f &quot; , Cars(0)-&gt;point(0)-&gt;utc_time ); ergibt: 40597.960938. Diese zeit soll in eine GMT Zeit umgewandelt werden. Wenn ich ein Datum bekomme, dann hab ich dafür eine Lösung:</p>
<pre><code class="language-cpp">double convertEpocTimeUTCGMT(const char* DateTime, bool switchToStandardTime){
	 struct tm  dt = {0,0,0,0,0,0,0,0,0,0,0};
	 char* w1;
	 w1= (char*)malloc( strlen(DateTime)+1);
	 w1 = strcpy( w1, DateTime);

	 char* pGLobalDateTokenList = strtok(w1, DateTimeDelimiter);
	 char* pGlobalTimeTokenList = strtok(NULL, DateTimeDelimiter);

	 if(strlen(DateTime) &lt; 10) return 0;

	 if(pGLobalDateTokenList){
		char* pDateTokenList = strtok(pGLobalDateTokenList, &quot;-&quot;);
		if(pDateTokenList){
			dt.tm_year =  atoi(pDateTokenList) - 1900;
			pDateTokenList = strtok(NULL, &quot;-&quot;);
			dt.tm_mon = atoi(pDateTokenList) -1;
			pDateTokenList = strtok(NULL, &quot;-&quot;);
			dt.tm_mday =  atoi(pDateTokenList);
		}			
	}

	if(pGlobalTimeTokenList){
		char* pTimeTokenList = strtok(pGlobalTimeTokenList, &quot;:&quot;);					
		if(pTimeTokenList){
			if(switchToStandardTime == false)
				dt.tm_hour =  atoi(pTimeTokenList)+1; //time change! switch to summertime
			else
				dt.tm_hour =  atoi(pTimeTokenList); //time change! return to standard time
			pTimeTokenList = strtok(NULL, &quot;:&quot;);
			dt.tm_min = atoi(pTimeTokenList);
			pTimeTokenList = strtok(NULL, &quot;:&quot;);
			dt.tm_sec = atoi(pTimeTokenList);
		}				
	}

	return (double)mktime(&amp;dt);  //UTC / GMT
}
</code></pre>
<p>Wie löse ich das mit dem Float?</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267196/utc-zeit-ist-float</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 14:26:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267196.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 May 2010 12:02:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Thu, 20 May 2010 12:02:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich soll für Objekte (Auto, Zug, Fußgänger,...) Kollisionen berechnen.<br />
Jedes Object hat eine Zeitangabe vom Typ &quot;float&quot;.<br />
z.B.: Cars(0)-&gt;point(0)-&gt;utc_time. Eine Ausgabe mit printf(&quot; Zeit Auto: %f &quot; , Cars(0)-&gt;point(0)-&gt;utc_time ); ergibt: 40597.960938. Diese zeit soll in eine GMT Zeit umgewandelt werden. Wenn ich ein Datum bekomme, dann hab ich dafür eine Lösung:</p>
<pre><code class="language-cpp">double convertEpocTimeUTCGMT(const char* DateTime, bool switchToStandardTime){
	 struct tm  dt = {0,0,0,0,0,0,0,0,0,0,0};
	 char* w1;
	 w1= (char*)malloc( strlen(DateTime)+1);
	 w1 = strcpy( w1, DateTime);

	 char* pGLobalDateTokenList = strtok(w1, DateTimeDelimiter);
	 char* pGlobalTimeTokenList = strtok(NULL, DateTimeDelimiter);

	 if(strlen(DateTime) &lt; 10) return 0;

	 if(pGLobalDateTokenList){
		char* pDateTokenList = strtok(pGLobalDateTokenList, &quot;-&quot;);
		if(pDateTokenList){
			dt.tm_year =  atoi(pDateTokenList) - 1900;
			pDateTokenList = strtok(NULL, &quot;-&quot;);
			dt.tm_mon = atoi(pDateTokenList) -1;
			pDateTokenList = strtok(NULL, &quot;-&quot;);
			dt.tm_mday =  atoi(pDateTokenList);
		}			
	}

	if(pGlobalTimeTokenList){
		char* pTimeTokenList = strtok(pGlobalTimeTokenList, &quot;:&quot;);					
		if(pTimeTokenList){
			if(switchToStandardTime == false)
				dt.tm_hour =  atoi(pTimeTokenList)+1; //time change! switch to summertime
			else
				dt.tm_hour =  atoi(pTimeTokenList); //time change! return to standard time
			pTimeTokenList = strtok(NULL, &quot;:&quot;);
			dt.tm_min = atoi(pTimeTokenList);
			pTimeTokenList = strtok(NULL, &quot;:&quot;);
			dt.tm_sec = atoi(pTimeTokenList);
		}				
	}

	return (double)mktime(&amp;dt);  //UTC / GMT
}
</code></pre>
<p>Wie löse ich das mit dem Float?</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900110</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Thu, 20 May 2010 12:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Thu, 20 May 2010 12:08:43 GMT]]></title><description><![CDATA[<p>Falsches Forum. Das ist eher C-Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900114</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 20 May 2010 12:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Thu, 20 May 2010 12:21:00 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Falsches Forum. Das ist eher C-Code.</p>
</blockquote>
<p>Auch in C würde das niemand so machen. Schließlich gibt's das schon in der Standardbibliothek.</p>
<p>@Threadersteller:</p>
<ol>
<li>Guck dir mal time.h an!</li>
<li>Was willst du eigentlich? Ehrlich gesagt, weiß ich gar nicht was du vor hast, das ist alles ein bisschen wirr:<br />
- Was hat das mit der Kollisionsberechnung zu tun?<br />
- Wieso willst du UTC in GMT umrechnen? Die beiden unterscheiden sich doch nur um Sekundenbruchteile<br />
- Was hat diese Umrechnung mit deinem Code zu tun? Dein Code bezieht sich auf die Umwandlung von Zeichenketten in eine numerische Zeitangabe.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1900119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900119</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 20 May 2010 12:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Thu, 20 May 2010 12:45:26 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bekommme einen Wert (Zahl) vom Typ float. Diesen will ich in ein gültiges Datum formatieren. Weil &quot;40597.960938&quot; irgendwie nicht so aussieht wie:<br />
Jahr, Tag, Monat, ..</p>
<p>Für das Datumsformat (in dem Codebeispiel) wenn es das schon in einer Standardbibliothek gibt, welches ist es denn? Weil dann könnte ich den Code ja vereinfachen.</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900127</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Thu, 20 May 2010 12:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Thu, 20 May 2010 13:46:41 GMT]]></title><description><![CDATA[<p>FrankTheFox schrieb:</p>
<blockquote>
<p>Für das Datumsformat (in dem Codebeispiel) wenn es das schon in einer Standardbibliothek gibt, welches ist es denn?</p>
</blockquote>
<p>Das kannst du dir aussuchen:<br />
<a href="http://www.cplusplus.com/reference/clibrary/ctime/strftime/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/ctime/strftime/</a><br />
Oder auch ein Standardformatierung benutzen:<br />
<a href="http://www.cplusplus.com/reference/clibrary/ctime/asctime/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/ctime/asctime/</a><br />
Lies dir doch einfach mal die Referenz zu time.h durch! Die ist nicht lang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900157</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 20 May 2010 13:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Thu, 20 May 2010 18:42:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>OK! Stimmt der Beispiel-Code ist nicht durchdacht. Ich habe den etwas umgeschrieben....</p>
<pre><code class="language-cpp">long Timestamp(char* CurrentTime)
{
	std::string str = CurrentTime;
	time_t t;
	struct tm * DateTime;

	t = time(NULL);
	DateTime = localtime(&amp;t); 

	if(str.length() == 8) 
	{
		DateTime-&gt;tm_hour = atoi(str.substr(0,2).c_str());
		DateTime-&gt;tm_min = atoi(str.substr(3,2).c_str());
		DateTime-&gt;tm_sec = atoi(str.substr(6,2).c_str());	
		return (long)mktime(DateTime);
	}
	else if(str.length() == 24)
	{
		DateTime-&gt;tm_year = atoi(str.substr(0,4).c_str()) - 1900;
		DateTime-&gt;tm_mon = atoi( str.substr(5,2).c_str()) -1;
		DateTime-&gt;tm_mday = atoi(str.substr(8,2).c_str());
		DateTime-&gt;tm_hour = atoi(str.substr(11,2).c_str());
		DateTime-&gt;tm_min = atoi(str.substr(14,2).c_str());
		DateTime-&gt;tm_sec = atoi(str.substr(17,2).c_str());	
		return (long)mktime(DateTime);
	}
	else  return -1;
}
</code></pre>
<p>Geht es beim Code noch besser? Oder ist das noch genauso schlecht?</p>
<p>Ich habe<br />
a) hh<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1f2-1f1f2.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--myanmar_burma_"
      title=":mm:"
      alt="🇲🇲"
    />ss als Zeit und (nehme das aktuelle Datum)<br />
b) YYYY-MM-TThh<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1f2-1f1f2.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--myanmar_burma_"
      title=":mm:"
      alt="🇲🇲"
    />ss.000Z (bsp.:&quot;2008-09-26T01:51:42.000Z&quot;)</p>
<p>und erhalte richtiger Ergebnisse.</p>
<p>nun möchte ich einen FLoat -&gt; HH:MM:SS. Ich weiß nicht wie ich anfangen soll?</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900378</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Thu, 20 May 2010 18:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to UTC Zeit ist Float????? on Fri, 21 May 2010 14:06:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also nun mein Lösungansatz:</p>
<pre><code class="language-cpp">long Timestamp(float CurrentTime)
{

	time_t t;
	struct tm * DateTime;
	int hour, secs, minutes;
	int intTimeValue =  (int) CurrentTime; 

	hour = intTimeValue / 3600;
	minutes = (intTimeValue - (intTimeValue / 3600) * 3600 ) / 60;
	secs = intTimeValue % 60;

	printf(&quot;&gt;&gt;&gt;&gt;   %02i %02i %02i&quot;, hour, minutes, secs);

	t = time(NULL);
	DateTime = localtime(&amp;t);

	DateTime-&gt;tm_hour = hour;
	DateTime-&gt;tm_min = minutes;
	DateTime-&gt;tm_sec = secs;	

	return (long)mktime(DateTime);
}
</code></pre>
<p>Ich denke wenn die Funktion int zurück gibt reicht das auch um den Timestamp aufzunehmen....</p>
<p>Und keine Kommentare?????</p>
<p>Gruß<br />
Franky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1900774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1900774</guid><dc:creator><![CDATA[FrankTheFox]]></dc:creator><pubDate>Fri, 21 May 2010 14:06:44 GMT</pubDate></item></channel></rss>