<span class="Apple-style-span" style="border-collapse: collapse; ">I personally use epoch time since its absolute. I have a simple time clock app that uses this method, from that it is easy to convert into human date:<div>
<br></div><div><br></div><div><br></div><div>[code]</div><div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: rgb(0, 0, 255); ">def</span> OnButtonIn(self,evt):</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><span style="color: rgb(0, 0, 0); "> </span>'create time stamp with ID/action'</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><span style="color: rgb(0, 0, 0); "> </span>'print to the rightFrame text'</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">if</span> self.punchedIn:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); ">
<span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 255); ">print</span><span style="color: rgb(0, 0, 0); "> </span>"Already punched in cannot punch again"</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
<span style="color: rgb(0, 0, 255); ">else</span>:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> seconds = time.time()</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> current = time.localtime(seconds)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
day = time.localtime()</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(252, 113, 5); "><span style="color: rgb(0, 0, 0); "> </span># time string can have characters 0..9, -, period, or space</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> timeday = time.strftime(<span style="color: rgb(0, 170, 0); ">'%H:%M-%m.%d.%y'</span>, day)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> formatday = time.strftime(<span style="color: rgb(0, 170, 0); ">'%c'</span>, day)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.ClockIntext = seconds</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(252, 113, 5); ">
<span style="color: rgb(0, 0, 0); "> </span>#self.text = "Clock in: " + self.text</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
self.punchIn.SetValue(formatday)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.punchedIn = <span style="color: rgb(0, 0, 255); ">True</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.punchedOut = <span style="color: rgb(0, 0, 255); ">False</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; ">
</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">def</span> OnButtonOut(self,evt):</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
<span style="color: rgb(0, 0, 255); ">if</span> self.punchedOut:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); ">
<span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 255); ">print</span><span style="color: rgb(0, 0, 0); "> </span>"Already punched out!"</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
<span style="color: rgb(0, 0, 255); ">else</span>:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><span style="color: rgb(0, 0, 0); "> </span>'create time stamp with ID/action'</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><span style="color: rgb(0, 0, 0); "> </span>'print to the rightFrame text'</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); "><span style="color: rgb(0, 0, 0); "> </span>'write to time sheet'</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> seconds = time.time()</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
current = time.localtime(seconds)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> day = time.localtime()</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(252, 113, 5); ">
<span style="color: rgb(0, 0, 0); "> </span># time string can have characters 0..9, -, period, or space</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
timeday = time.strftime(<span style="color: rgb(0, 170, 0); ">'%H:%M-%m.%d.%y'</span>, day)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
formatday = time.strftime(<span style="color: rgb(0, 170, 0); ">'%c'</span>, day)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
self.ClockOuttext = seconds</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.punchOut.SetValue(formatday)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.punchedIn = <span style="color: rgb(0, 0, 255); ">False</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
self.punchedOut = <span style="color: rgb(0, 0, 255); ">True</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); ">
<span style="color: rgb(0, 0, 0); "> </span>'create a file and write the table to it'</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
file = open(<span style="color: rgb(0, 170, 0); ">'timesheet.txt'</span>, <span style="color: rgb(0, 170, 0); ">'a'</span>)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
file.write(str(self.ClockIntext))</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> file.write(<span style="color: rgb(0, 170, 0); ">'\t'</span>)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> file.write(str(self.ClockOuttext))</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
file.write(<span style="color: rgb(0, 170, 0); ">'\n'</span>)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> file.close()</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 0, 255); "><span style="color: rgb(0, 0, 0); "> </span>return<span style="color: rgb(0, 0, 0); "> </span>None</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "> </p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
<span style="color: rgb(0, 0, 255); ">def</span> OnButtonCalc(self,event):</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 170, 0); ">
<span style="color: rgb(0, 0, 0); "> </span>'open the time sheet and calculate the total time'</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
file = open(<span style="color: rgb(0, 170, 0); ">'timesheet.txt'</span>,<span style="color: rgb(0, 170, 0); ">'r'</span>)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
lines = file.readlines()</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> time1 = <span style="color: rgb(0, 170, 0); ">''</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> time2 = <span style="color: rgb(0, 170, 0); ">''</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
self.hours = <span style="color: rgb(128, 0, 0); ">0.000</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">for</span> punch <span style="color: rgb(0, 0, 255); ">in</span> lines:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">for</span> x <span style="color: rgb(0, 0, 255); ">in</span> punch:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">if</span>(len(x) <= <span style="color: rgb(128, 0, 0); ">0</span>):</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.hours = self.hours</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
<span style="color: rgb(0, 0, 255); ">else</span>:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">if</span> x != <span style="color: rgb(0, 170, 0); ">'\t'</span> <span style="color: rgb(0, 0, 255); ">and</span> x!= <span style="color: rgb(0, 170, 0); ">'\n'</span>:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> time1 = time1 + x</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
<span style="color: rgb(0, 0, 255); ">elif</span> x == <span style="color: rgb(0, 170, 0); ">'\t'</span>:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
time2 = time1</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> time1 = <span style="color: rgb(0, 170, 0); ">''</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> <span style="color: rgb(0, 0, 255); ">elif</span> x == <span style="color: rgb(0, 170, 0); ">'\n'</span>:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> self.hours = self.hours + abs(((float(time2)-float(time1))/<span style="color: rgb(128, 0, 0); ">60</span>)/<span style="color: rgb(128, 0, 0); ">60</span>)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> time2 = <span style="color: rgb(0, 170, 0); ">''</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "> time1 = <span style="color: rgb(0, 170, 0); ">''</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "> </p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">
self.total.SetValue(<span style="color: rgb(0, 170, 0); ">'%2f'</span> % self.hours)</p></div><div>[/code]</div><div><br></div><div>Oops wrong person, sorry about that. This time it should go to the mailing list</div>
<div><br></div><div><br></div><div><br></div><div>Aaron Hill</div></span>