<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LABVIEW的編程技巧之如何比較系統(tǒng)時(shí)間

          LABVIEW的編程技巧之如何比較系統(tǒng)時(shí)間

          作者: 時(shí)間:2017-01-09 來源:網(wǎng)絡(luò) 收藏
          日前在論壇上看到網(wǎng)友的一個(gè)帖子,內(nèi)容是比較當(dāng)前時(shí)間是否在22:00:00和05:00:00之間,從字面上看 05:00:00應(yīng)該是第二天凌晨。網(wǎng)友的比較方法是把時(shí)間上下限和當(dāng)前時(shí)間轉(zhuǎn)換為字符串,然后進(jìn)行比較,下面是他的程序框圖,因?yàn)樵谶壿嬌洗嬖趩栴},所以引起了熱烈的討論。

          獲取系統(tǒng)時(shí)間使得時(shí)間在22:00:00之后到5:00:00之前燈亮,但是其他時(shí)間都對(duì)的,為什么在0:00:00~2:00:00之間就不對(duì)呢?

          本文引用地址:http://www.ex-cimer.com/article/201701/337289.htm

          似乎是4:59:59那里的冒號(hào)是使用了中文輸入法的冒號(hào),而那個(gè)節(jié)點(diǎn)輸出的時(shí)候是使用英文輸入法下的冒號(hào)的,所以比較時(shí)就出錯(cuò)了。

          不是的,那個(gè)只要時(shí)間小于2比如說1:10:50,因?yàn)樗牡谝粋€(gè)數(shù)字比2小,輸出就不對(duì)

          后面還有一些相關(guān)的回復(fù)就不摘錄了,討論到后來一位網(wǎng)友提出了意見“感覺這個(gè)思路不是很好”

          我個(gè)人認(rèn)為這位網(wǎng)友的看法是對(duì)的,我們知道字符串是逐個(gè)字符比較的,它實(shí)際上比較的是字符的ASCII值。“5”和“22”進(jìn)行字符串比較,那么5>22,因?yàn)?>2,這對(duì)數(shù)字比較來說是不符合邏輯的。

          LV中的時(shí)間本身是數(shù)值,任何編程語言都會(huì)定義一個(gè)0時(shí)刻,當(dāng)前時(shí)間為從那個(gè)0時(shí)刻開始后經(jīng)過的秒數(shù)。LV作為面向工程實(shí)踐的編程語言,有關(guān)時(shí)間操作函數(shù)非常豐富,因此使用“數(shù)值”比較更容易理解、不容易發(fā)生錯(cuò)誤。

          我們知道,目前LV有三種不同的方式表示時(shí)間,三者之間可以自由轉(zhuǎn)換:

          1、直接利用秒,自0時(shí)刻開始經(jīng)歷過的秒數(shù)。

          上圖所示的就是LV定義的0時(shí)刻時(shí)間,這個(gè)時(shí)間是時(shí)區(qū)相關(guān)的。

          2、時(shí)間標(biāo)識(shí)符,時(shí)間標(biāo)識(shí)符可能是在LV8.0之后才出現(xiàn)的,是LV專門為時(shí)間操作提供的新的控件,如上圖所示。其時(shí)間精度比直接使用秒數(shù)要高。

          3、時(shí)間簇表示。時(shí)間簇表示是我們最為常用的時(shí)間表示法,簇的數(shù)據(jù)結(jié)構(gòu)如下圖所示:

          回過頭來看看網(wǎng)友所提的問題,他的目的是要看看當(dāng)前系統(tǒng)時(shí)間是否在上上下限范圍之內(nèi)。當(dāng)前系統(tǒng)時(shí)間很容易獲得,問題是如何獲取上下限的問題??纯聪旅娴某绦蚩驁D。

          上面的程序框圖中,有兩個(gè)重要的技巧,如紅色箭頭所示。

          1、年、月、日、小時(shí)可以是相對(duì)時(shí)間,沒有限制,我們不用考慮24小時(shí),31天等等,LV會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換。上圖中22+7=29,超過24小時(shí)后,LV自動(dòng)調(diào)整天數(shù)。

          2、判斷范圍并強(qiáng)制轉(zhuǎn)換函數(shù)可以直接使用時(shí)間標(biāo)識(shí)符作為輸入?yún)?shù)。

          我們知道,時(shí)間標(biāo)識(shí)符可以直接轉(zhuǎn)換為秒數(shù),更為重要的是時(shí)間標(biāo)識(shí)符可以直接和數(shù)值進(jìn)行加減運(yùn)算,沒有數(shù)值單位時(shí)默認(rèn)為秒,因此上面的程序框圖可以簡(jiǎn)化為:

          我曾經(jīng)介紹過時(shí)間標(biāo)識(shí)符可以直接攜帶單位進(jìn)行加減運(yùn)算,因此上述程序框圖可以簡(jiǎn)化為:


          注意紅色箭頭部分,h表示小時(shí),這樣就不需要乘以3600,轉(zhuǎn)換為秒了,對(duì)于時(shí)間比較非常方便。



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();