<?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[simTime aus realer Zeit ableiten]]></title><description><![CDATA[<p>Für eine Simulation benötige ich eine Singleton Objekt, das die Sim-Time verwaltet. Ist dieser Entwurf so sinnvoll?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;chrono&gt;

class simTime
{
private:
  simTime(){}
  simTime( const simTime &amp; );
  simTime&amp; operator=( simTime );
  ~simTime(){}

  double factor_;
  size_t timeSec_;

public:
  static simTime&amp; Instance()
  {
    static simTime instance;
    return instance;
  }

  double getFactor() {return factor_;}
  void setFactor(double factor){factor_ = factor;}

  size_t getTimeSec() {return timeSec_;}
  void setTimeSec(size_t timeSec){timeSec_ = timeSec;}
  void resetTime(){timeSec_ = 0;};
};

simTime&amp; sT = simTime::Instance();

int main()
{
    sT.setFactor(10);
    sT.setTimeSec(0);

    std::chrono::time_point&lt;std::chrono::system_clock&gt; start, realTime;
    start = std::chrono::system_clock::now();

    std::chrono::duration&lt;int&gt; elapsed_seconds;

    while (true)
    {
        realTime = std::chrono::system_clock::now();
        std::chrono::duration&lt;float&gt; elapsed_seconds;
        static std::chrono::duration&lt;float&gt; old_elapsed_seconds(0);

        elapsed_seconds = realTime-start;
        std::time_t realTimeDuration = std::chrono::system_clock::to_time_t(realTime);

        if (elapsed_seconds.count() &gt;= (old_elapsed_seconds.count() + 1/sT.getFactor()))
        {
            sT.setTimeSec(elapsed_seconds.count() * sT.getFactor());

            std::cout &lt;&lt; &quot;elapsed time: &quot; &lt;&lt; elapsed_seconds.count() &lt;&lt; &quot;s  simTime: &quot; &lt;&lt; sT.getTimeSec() &lt;&lt; &quot;s\n&quot;;
            old_elapsed_seconds = elapsed_seconds;
        }

        if (elapsed_seconds.count() &gt; 15)
        {
            break;
        }
    }

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/336599/simtime-aus-realer-zeit-ableiten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 05:23:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/336599.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Feb 2016 09:21:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to simTime aus realer Zeit ableiten on Tue, 02 Feb 2016 09:21:41 GMT]]></title><description><![CDATA[<p>Für eine Simulation benötige ich eine Singleton Objekt, das die Sim-Time verwaltet. Ist dieser Entwurf so sinnvoll?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;chrono&gt;

class simTime
{
private:
  simTime(){}
  simTime( const simTime &amp; );
  simTime&amp; operator=( simTime );
  ~simTime(){}

  double factor_;
  size_t timeSec_;

public:
  static simTime&amp; Instance()
  {
    static simTime instance;
    return instance;
  }

  double getFactor() {return factor_;}
  void setFactor(double factor){factor_ = factor;}

  size_t getTimeSec() {return timeSec_;}
  void setTimeSec(size_t timeSec){timeSec_ = timeSec;}
  void resetTime(){timeSec_ = 0;};
};

simTime&amp; sT = simTime::Instance();

int main()
{
    sT.setFactor(10);
    sT.setTimeSec(0);

    std::chrono::time_point&lt;std::chrono::system_clock&gt; start, realTime;
    start = std::chrono::system_clock::now();

    std::chrono::duration&lt;int&gt; elapsed_seconds;

    while (true)
    {
        realTime = std::chrono::system_clock::now();
        std::chrono::duration&lt;float&gt; elapsed_seconds;
        static std::chrono::duration&lt;float&gt; old_elapsed_seconds(0);

        elapsed_seconds = realTime-start;
        std::time_t realTimeDuration = std::chrono::system_clock::to_time_t(realTime);

        if (elapsed_seconds.count() &gt;= (old_elapsed_seconds.count() + 1/sT.getFactor()))
        {
            sT.setTimeSec(elapsed_seconds.count() * sT.getFactor());

            std::cout &lt;&lt; &quot;elapsed time: &quot; &lt;&lt; elapsed_seconds.count() &lt;&lt; &quot;s  simTime: &quot; &lt;&lt; sT.getTimeSec() &lt;&lt; &quot;s\n&quot;;
            old_elapsed_seconds = elapsed_seconds;
        }

        if (elapsed_seconds.count() &gt; 15)
        {
            break;
        }
    }

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2485569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2485569</guid><dc:creator><![CDATA[dd3y]]></dc:creator><pubDate>Tue, 02 Feb 2016 09:21:41 GMT</pubDate></item><item><title><![CDATA[Reply to simTime aus realer Zeit ableiten on Tue, 02 Feb 2016 21:17:09 GMT]]></title><description><![CDATA[<p>Warum brauchst du ein Singleton?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2485655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2485655</guid><dc:creator><![CDATA[patrick246]]></dc:creator><pubDate>Tue, 02 Feb 2016 21:17:09 GMT</pubDate></item></channel></rss>