摘 要:文中通過分析網(wǎng)絡(luò)購物平臺系統(tǒng)時間需要校準(zhǔn),設(shè)計了一種利用不斷變化系統(tǒng)的毫秒時間截屏網(wǎng)絡(luò)北京時間來計算出精確的時間差,然后調(diào)整系統(tǒng)時間的方法,得到了只看秒鐘數(shù)能達(dá)到毫秒精度方法,對于時間精度要求較高的系統(tǒng)有一定的借鑒作用。
關(guān)鍵詞:網(wǎng)絡(luò)購物;系統(tǒng);時間校準(zhǔn)
一、網(wǎng)絡(luò)購物系統(tǒng)及時間校準(zhǔn)分析
在電子商務(wù)營銷策略中,秒殺是經(jīng)常被商家使用的,實際限購活動中的商品非常少。按照稀缺性原理,網(wǎng)絡(luò)銷售中的秒殺商品越少越能激發(fā)消費者的購買意愿。[1]為了不失公平性,購物平臺系統(tǒng)時間的絕對準(zhǔn)確性一定要保證,這樣能夠確??蛻裟軌蛟跍?zhǔn)確的時間開始秒殺,實現(xiàn)公平競爭。對于系統(tǒng)時間校準(zhǔn),西安航空計算技術(shù)研究所的何向棟提出了一種通過對SAE AS6802時間觸發(fā)網(wǎng)絡(luò)協(xié)議來實現(xiàn)時間同步。[2]河南廣播電視臺的王文韜提出的時間同步僅限于服務(wù)器與客戶端之間。[3]同時windouws系統(tǒng)也自帶的時間服務(wù)器同步也是基于某些特定網(wǎng)站而言。但這些都不是基于網(wǎng)絡(luò)北京時間為基準(zhǔn)進(jìn)行校正。雖然相對較準(zhǔn),但是精度也無法確定。
二、時間校準(zhǔn)方案設(shè)計
針對現(xiàn)在的各種情況,現(xiàn)設(shè)計一種基于網(wǎng)絡(luò)北京時間為基準(zhǔn)的時間校準(zhǔn)方法。先要有穩(wěn)定的網(wǎng)絡(luò)連接到計算機(jī)上,在計算機(jī)上通過瀏覽器把網(wǎng)絡(luò)北京時間的網(wǎng)頁打開,然后把本地的時間調(diào)出,這個時候能夠發(fā)現(xiàn),網(wǎng)絡(luò)北京時間顯示的是精確到秒,本地計算機(jī)的時間顯示的也是精確到秒?,F(xiàn)在設(shè)計一套更加精確的校準(zhǔn)方法,把精確時間精確達(dá)到毫秒級別。通過計算機(jī)的程序設(shè)定以毫秒為最小單位的時間進(jìn)行截屏拍照,這時候就會把此時的網(wǎng)絡(luò)北京時間以秒為最小單位留存下來。這時候就把拍到的網(wǎng)絡(luò)北京時間的秒數(shù)與啟動拍照的秒數(shù)進(jìn)行對比。秒數(shù)與秒數(shù)進(jìn)行對比能把精度精確到毫秒級別?對!因為還有截屏的毫秒時間,可以利用這個時間作為參照。這樣計算機(jī)本地截屏的時間能夠確定到毫秒了,但是網(wǎng)絡(luò)上的北京時間怎么確定到毫秒?這個需要找到網(wǎng)絡(luò)北京時間的上一秒與下一秒的變化的時刻,找到這個時刻后,與本地毫秒為最小單位時間進(jìn)行對比就知道了網(wǎng)絡(luò)時間與本地計算機(jī)時間以毫秒為單位的差了。然后根據(jù)這個差,把本地時間用計算機(jī)程序設(shè)定,即可使得本地計算機(jī)與網(wǎng)絡(luò)北京時間校準(zhǔn)到毫秒級別。
如何找到網(wǎng)絡(luò)北京時間上一秒與下一秒變化時刻的本地毫秒級的時間即為本算法的關(guān)鍵。在開始前設(shè)定一個初始的毫秒變化值參數(shù)varmt=1000。第一步,設(shè)定截屏本地時間秒數(shù)時間為bst1,毫秒時間為bmt1,而截屏到網(wǎng)絡(luò)北京時間秒數(shù)為wst1,毫秒時間假定為0。第二步,把毫秒變化值縮小為原來的一般,即用varmt=varmt/2實現(xiàn)即可,判斷觸發(fā)截屏的本地時間與截屏到的網(wǎng)絡(luò)北京時間的比較,如果比網(wǎng)絡(luò)北京時間快,下次觸發(fā)截屏的秒數(shù)bst2=bst1,而毫秒數(shù)bmt2=bmt1-varmt,如果結(jié)果為負(fù)值,向秒數(shù)借位再進(jìn)行運算,即bmt1+1000-varmt,獲得的結(jié)果為bmt2,而bst2=bst1-1。如果比網(wǎng)絡(luò)北京時間慢,則下次觸發(fā)截屏的秒數(shù)bst2=bst1,而毫秒數(shù)bmt2=bmt1+varmt,如果其得到的毫秒數(shù)bmt2減去1000大于0,則其余值為真正的毫秒數(shù),即bmt2=bmt1+varmt-1000,而bst2=bst1+1,然后進(jìn)行第二次截屏拍照,獲得網(wǎng)絡(luò)北京時間秒數(shù)為wst2,毫秒時間仍然假定為0。以此按照此準(zhǔn)則,直到varmt小于某個確定的值,比如2,便找到了本機(jī)時間與網(wǎng)絡(luò)北京時間的差,然后根據(jù)此差,重新設(shè)定本機(jī)時間,即可校準(zhǔn)本機(jī)時間為網(wǎng)絡(luò)北京時間,誤差為毫秒級別。
三、時間校準(zhǔn)方案實現(xiàn)
實現(xiàn)時間校準(zhǔn)采用高性能的C++計算機(jī)編程語言編寫,在最新的vs2019環(huán)境下實現(xiàn)。通過建立一個對話框項目來實現(xiàn)。啟動程序前先打開網(wǎng)絡(luò)北京時間,然后程序啟動一個線程,在線程中不斷循環(huán)判斷是否需要截屏,截屏后把數(shù)據(jù)保存到剪切板,然后等待下一次截屏。而在主程序中,先設(shè)定一個開始啟動的時間,時間以分鐘、秒鐘、毫秒為參數(shù)即可。設(shè)定一個消息告知已經(jīng)截屏拍照了,把剪切板的圖片拷貝到畫圖軟件里面,從里面找出拍圖時候的網(wǎng)絡(luò)北京時間秒數(shù),把這個時間輸入到程序中,讓程序計算下一次截屏拍圖的時間,主要是毫秒的設(shè)定,進(jìn)行下一次拍圖,依次反復(fù)。直到毫秒變化值varmt小于2的時候,算出系統(tǒng)時間與網(wǎng)絡(luò)時間的差,如圖所示。最后根據(jù)時間差通過SetSystemTime函數(shù)即可設(shè)定本機(jī)系統(tǒng)時間。這樣就完成了本機(jī)系統(tǒng)時間與網(wǎng)絡(luò)北京時間的毫秒級的精準(zhǔn)校準(zhǔn)。
四、結(jié)論
文中通過網(wǎng)絡(luò)只看到北京時間的秒鐘數(shù)達(dá)到了毫秒級校準(zhǔn),較多網(wǎng)絡(luò)平臺系統(tǒng)都可采用這種方法來校準(zhǔn)系統(tǒng)時間。對于教改項目《高職學(xué)生平時成績動態(tài)評價系統(tǒng)研究與實踐》中的系統(tǒng)就可以采用這種方法來校準(zhǔn)。
參考文獻(xiàn):
[1]金玉芳.電商秒殺促銷中的“限時”與“限量”研究[J].現(xiàn)代營銷(信息版),2019(06):206-207.
[2]何向棟.基于時間觸發(fā)網(wǎng)絡(luò)的時間同步研究[J].信息通信,2019(11):107-109.
[3]王文韜.計算機(jī)網(wǎng)絡(luò)中的時間同步[J].科技傳播,2018,10(13):133-134.
基金項目:2019年度北京政法職業(yè)學(xué)院院級教改項目《高職學(xué)生平時成績動態(tài)評價系統(tǒng)研究與實踐》(項目編號:JGYB20191106)研究成果
作者簡介:張躍軍(1978-),男,漢族,湖南益陽人,碩士,講師,主要研究方向:電子商務(wù)、軟件測試、加密算法等。