253 lines
16 KiB
HTML
253 lines
16 KiB
HTML
|
|
<!DOCTYPE html>
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>time_of_day — pylib 2019.5.19 documentation</title>
|
|
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
|
|
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
|
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
|
<script type="text/javascript" src="../_static/jquery.js"></script>
|
|
<script type="text/javascript" src="../_static/underscore.js"></script>
|
|
<script type="text/javascript" src="../_static/doctools.js"></script>
|
|
<script type="text/javascript" src="../_static/language_data.js"></script>
|
|
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
<link rel="index" title="Index" href="../genindex.html" />
|
|
<link rel="search" title="Search" href="../search.html" />
|
|
|
|
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
|
|
|
</head><body>
|
|
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
|
|
|
|
<div class="body" role="main">
|
|
|
|
<h1>Source code for time_of_day</h1><div class="highlight"><pre>
|
|
<span></span><span class="ch">#!/usr/bin/env python</span>
|
|
<span class="c1"># -*- coding: utf-8 -*-</span>
|
|
<span class="sd">"""Calculate time.</span>
|
|
|
|
<span class="sd">:Date: 2019-06-01</span>
|
|
|
|
<span class="sd">.. module:: time_of_day</span>
|
|
<span class="sd"> :platform: *nix, Windows</span>
|
|
<span class="sd"> :synopsis: Calculate time.</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd">.. moduleauthor:: Daniel Weschke <daniel.weschke@directbox.de></span>
|
|
<span class="sd">"""</span>
|
|
<span class="kn">from</span> <span class="nn">time</span> <span class="kn">import</span> <span class="n">struct_time</span><span class="p">,</span> <span class="n">mktime</span>
|
|
|
|
<div class="viewcode-block" id="in_seconds"><a class="viewcode-back" href="../time_of_day.html#time_of_day.in_seconds">[docs]</a><span class="k">def</span> <span class="nf">in_seconds</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""If time is `time.struct_time` convert to float seconds.</span>
|
|
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: the time in seconds</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">time</span><span class="p">,</span> <span class="n">struct_time</span><span class="p">):</span>
|
|
<span class="n">time</span> <span class="o">=</span> <span class="n">mktime</span><span class="p">(</span><span class="n">time</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">time</span></div>
|
|
|
|
<div class="viewcode-block" id="seconds"><a class="viewcode-back" href="../time_of_day.html#time_of_day.seconds">[docs]</a><span class="k">def</span> <span class="nf">seconds</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The seconds of the time.</span>
|
|
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: seconds, range [0, 60]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">in_seconds</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">%</span><span class="mi">60</span></div>
|
|
|
|
<div class="viewcode-block" id="seconds_norm"><a class="viewcode-back" href="../time_of_day.html#time_of_day.seconds_norm">[docs]</a><span class="k">def</span> <span class="nf">seconds_norm</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The seconds normalized to 60 seconds.</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: the normalized seconds, range [0, 1]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">seconds</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mi">60</span></div>
|
|
|
|
<div class="viewcode-block" id="minutes"><a class="viewcode-back" href="../time_of_day.html#time_of_day.minutes">[docs]</a><span class="k">def</span> <span class="nf">minutes</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The minutes of the time.</span>
|
|
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: minutes, range [0, 60]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">in_seconds</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mi">60</span><span class="o">%</span><span class="mi">60</span></div>
|
|
|
|
<div class="viewcode-block" id="minutes_norm"><a class="viewcode-back" href="../time_of_day.html#time_of_day.minutes_norm">[docs]</a><span class="k">def</span> <span class="nf">minutes_norm</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The minutes normalized to 60 minutes.</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: the normalized minutes, range [0, 1]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">minutes</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mi">60</span></div>
|
|
|
|
<div class="viewcode-block" id="hours"><a class="viewcode-back" href="../time_of_day.html#time_of_day.hours">[docs]</a><span class="k">def</span> <span class="nf">hours</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The hours of the time.</span>
|
|
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: hours, range [0, 24]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">in_seconds</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mi">60</span><span class="o">/</span><span class="mi">60</span><span class="o">%</span><span class="mi">24</span></div>
|
|
|
|
<div class="viewcode-block" id="hours_norm"><a class="viewcode-back" href="../time_of_day.html#time_of_day.hours_norm">[docs]</a><span class="k">def</span> <span class="nf">hours_norm</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The hours normalized to 24 hours.</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: the normalized hours, range [0, 1]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">hours</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mi">24</span></div>
|
|
|
|
<div class="viewcode-block" id="days"><a class="viewcode-back" href="../time_of_day.html#time_of_day.days">[docs]</a><span class="k">def</span> <span class="nf">days</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The days of the time (year).</span>
|
|
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: hours, range [0, 365.2425]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">in_seconds</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mi">60</span><span class="o">/</span><span class="mi">60</span><span class="o">/</span><span class="mi">24</span><span class="o">%</span><span class="mf">365.2425</span></div>
|
|
|
|
<div class="viewcode-block" id="days_norm"><a class="viewcode-back" href="../time_of_day.html#time_of_day.days_norm">[docs]</a><span class="k">def</span> <span class="nf">days_norm</span><span class="p">(</span><span class="n">time</span><span class="p">):</span>
|
|
<span class="sd">"""The days normalized to 365.2425 (Gregorian, on average) days.</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :param time: the time in seconds</span>
|
|
<span class="sd"> :type time: float or `time.struct_time`</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: the normalized days, range [0, 1]</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">days</span><span class="p">(</span><span class="n">time</span><span class="p">)</span><span class="o">/</span><span class="mf">365.2425</span></div>
|
|
|
|
<div class="viewcode-block" id="transform"><a class="viewcode-back" href="../time_of_day.html#time_of_day.transform">[docs]</a><span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="n">time_norm</span><span class="p">,</span> <span class="n">length</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
|
<span class="sd">"""Transform normalized time value to new length.</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :param position_norm: the normalized time value to transform</span>
|
|
<span class="sd"> :type position_norm: float</span>
|
|
<span class="sd"> :param length: the transformation</span>
|
|
<span class="sd"> :type length: float</span>
|
|
<span class="sd"> :param offset: the offset (default = 0)</span>
|
|
<span class="sd"> :type offset: float</span>
|
|
<span class="sd"> </span>
|
|
<span class="sd"> :returns: the transformation value</span>
|
|
<span class="sd"> :rtype: float</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">time_norm</span><span class="o">*</span><span class="n">length</span> <span class="o">+</span> <span class="n">offset</span></div>
|
|
|
|
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">time</span> <span class="kn">import</span> <span class="n">time</span><span class="p">,</span> <span class="n">gmtime</span><span class="p">,</span> <span class="n">localtime</span>
|
|
<span class="c1"># time in seconds</span>
|
|
<span class="n">t</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span>
|
|
<span class="nb">min</span> <span class="o">=</span> <span class="n">minutes</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
|
<span class="n">h</span> <span class="o">=</span> <span class="n">hours</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
|
<span class="n">min_norm</span> <span class="o">=</span> <span class="n">minutes_norm</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
|
<span class="n">h_norm</span> <span class="o">=</span> <span class="n">hours_norm</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
|
|
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'min '</span><span class="p">,</span> <span class="nb">min</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'h '</span><span class="p">,</span> <span class="n">h</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'min_norm '</span><span class="p">,</span> <span class="n">min_norm</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'h_norm '</span><span class="p">,</span> <span class="n">h_norm</span><span class="p">)</span>
|
|
|
|
<span class="n">x_len</span> <span class="o">=</span> <span class="mi">30</span>
|
|
<span class="n">x_offset</span> <span class="o">=</span> <span class="o">-</span><span class="mi">8</span>
|
|
<span class="n">x_pos</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">min_norm</span><span class="p">,</span> <span class="n">x_len</span><span class="p">,</span> <span class="n">x_offset</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'m[-8,22] '</span><span class="p">,</span> <span class="n">x_pos</span><span class="p">)</span>
|
|
|
|
<span class="n">y_len</span> <span class="o">=</span> <span class="mi">20</span>
|
|
<span class="n">y_offset</span> <span class="o">=</span> <span class="o">-</span><span class="mi">10</span>
|
|
<span class="n">y_pos</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">h_norm</span><span class="p">,</span> <span class="n">y_len</span><span class="p">,</span> <span class="n">y_offset</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'h[-10,10]'</span><span class="p">,</span> <span class="n">y_pos</span><span class="p">)</span>
|
|
|
|
</pre></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
<div class="sphinxsidebarwrapper">
|
|
<h1 class="logo"><a href="../index.html">pylib</a></h1>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Navigation</h3>
|
|
|
|
<div class="relations">
|
|
<h3>Related Topics</h3>
|
|
<ul>
|
|
<li><a href="../index.html">Documentation overview</a><ul>
|
|
<li><a href="index.html">Module code</a><ul>
|
|
</ul></li>
|
|
</ul></li>
|
|
</ul>
|
|
</div>
|
|
<div id="searchbox" style="display: none" role="search">
|
|
<h3 id="searchlabel">Quick search</h3>
|
|
<div class="searchformwrapper">
|
|
<form class="search" action="../search.html" method="get">
|
|
<input type="text" name="q" aria-labelledby="searchlabel" />
|
|
<input type="submit" value="Go" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">$('#searchbox').show(0);</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="clearer"></div>
|
|
</div>
|
|
<div class="footer">
|
|
©2019, Daniel Weschke.
|
|
|
|
|
|
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.2.1</a>
|
|
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
</html> |