delphi 求两个时间差
<p>相关资料:</p><p>http://www.360doc.com/content/12/0628/09/7662927_220905393.shtml //delphi 求两个时间差</p>
<p>https://blog.csdn.net/zengcong2013/article/details/46369523 //delphi “div”、“mod”、“\”除法运算符的区别与使用方法</p>
<p>http://www.delphitop.com/html/shijian/3220.html //<span style="font-family: "Courier New"; font-size: 12px">01天 01:01:02输出方式</span></p>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> TForm1.Button8Click(Sender: TObject);
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(0, 0, 0, 1)">sd, nd: TDateTime;
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> randid: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span> sd := StrtoDatetime (<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1981/08/08 00:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> nd :=<span style="color: rgba(0, 0, 0, 1)"> Now;
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(0, 0, 0, 1)">Memo1.Clear;
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">开始测试时间差:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">10</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">起始时间:1981-08-08 00:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">11</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">终止时间:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">DateTimeToStr(nd));
</span><span style="color: rgba(0, 128, 128, 1)">12</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">年:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(YearsBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">13</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">月:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(MonthsBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">14</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">周:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(WeeksBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">15</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">日:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(DaysBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">16</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">时:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(HoursBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">17</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">分:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(MinutesBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">18</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">秒:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">IntToStr(SecondsBetween(sd, nd)));
</span><span style="color: rgba(0, 128, 128, 1)">19</span> Memo1.Lines.Add(#<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">) ;
</span><span style="color: rgba(0, 128, 128, 1)">20</span> Memo1.Lines.Add(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">以秒差为例生成随机数: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">21</span> randid := IntToStr(SecondsBetween(sd, nd))+
<span style="color: rgba(0, 128, 128, 1)">22</span> IntToStr(random(<span style="color: rgba(128, 0, 128, 1)">9</span>))+
<span style="color: rgba(0, 128, 128, 1)">23</span> IntToStr(random(<span style="color: rgba(128, 0, 128, 1)">9</span>))+
<span style="color: rgba(0, 128, 128, 1)">24</span> IntToStr(random(<span style="color: rgba(128, 0, 128, 1)">9</span>))+
<span style="color: rgba(0, 128, 128, 1)">25</span> IntToStr (random(<span style="color: rgba(128, 0, 128, 1)">9</span>));<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">呵呵,很笨的方法。</span>
<span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(0, 0, 0, 1)">Memo1.Lines.Add(randid);
</span><span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(0, 0, 255, 1)">end</span>;<br><br>结果如下:<br>开始测试时间差:
起始时间:1981-08-08 00:00:00
终止时间:2020/3/7 15:17:37
年:38
月:462
周:2013
日:14091
时:338199
分:20291957
秒:1217517457
以秒差为例生成随机数:
12175174571070
<br><br></pre>
</div>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 0, 255, 1)">function</span> GetSubDateTime(S1, S2:<span style="color: rgba(0, 0, 255, 1)">string</span>): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(0, 0, 0, 1)">T1, T2: TDateTime;
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(0, 0, 0, 1)">D, H, M, S: Integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(0, 0, 0, 1)">Value: Int64;
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> T1 :=<span style="color: rgba(0, 0, 0, 1)"> StrToDateTime(S1);
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> T2 :=<span style="color: rgba(0, 0, 0, 1)"> StrToDateTime(S2);
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> Value :=<span style="color: rgba(0, 0, 0, 1)"> SecondsBetween(T1, T2);
</span><span style="color: rgba(0, 128, 128, 1)">10</span> D := Value <span style="color: rgba(0, 0, 255, 1)">div</span><span style="color: rgba(0, 0, 0, 1)"> SecsPerDay;
</span><span style="color: rgba(0, 128, 128, 1)">11</span> H := Value <span style="color: rgba(0, 0, 255, 1)">mod</span> SecsPerDay <span style="color: rgba(0, 0, 255, 1)">div</span><span style="color: rgba(0, 0, 0, 1)"> SecsPerHour;
</span><span style="color: rgba(0, 128, 128, 1)">12</span> M := Value <span style="color: rgba(0, 0, 255, 1)">mod</span> SecsPerDay <span style="color: rgba(0, 0, 255, 1)">mod</span> SecsPerHour <span style="color: rgba(0, 0, 255, 1)">div</span><span style="color: rgba(0, 0, 0, 1)"> SecsPerMin;
</span><span style="color: rgba(0, 128, 128, 1)">13</span> S := Value <span style="color: rgba(0, 0, 255, 1)">mod</span> SecsPerDay <span style="color: rgba(0, 0, 255, 1)">mod</span> SecsPerHour <span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)"> SecsPerMin;
</span><span style="color: rgba(0, 128, 128, 1)">14</span> result := Format(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%.2d天 %.2d:%.2d:%.2d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,);
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(0, 0, 255, 1)">end</span>;<br><br>输入2020/03/06 14:39:32<br>输入2020/03/07 15:40:34<br>结果如下:<br>01天 01:01:02</pre>
</div>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<div id="AllanboltSignature">
<div>作者:疯狂Delphi</div>
<div>出处:https://www.cnblogs.com/FKdelphi/</div>
<div>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.</div>
</div>
<div class="div_masklayer" id="div_masklayer"></div>
<div class="div_popup" id="Div_popup">
<p class="mid">欢迎关注我,一起进步!扫描下方二维码即可加我</p>
<img class="img_zfb" id="img_zfb" width="150" src="https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_251208113944_QQ.png">
<img class="img_zfb" id="img_zfb" width="150" src="https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_251208115029_WX.png">
</div><br><br>
来源:https://www.cnblogs.com/FKdelphi/p/12434454.html
頁:
[1]