lua時間函式操作和對比程式碼,os.date() os.time()
time和date兩個函式在Lua中實現所有的時鐘查詢功能。函式time在沒有引數時返回當前時鐘的數值。(在許多系統中該數值是當前距離某個特定時間的秒數。)當為函式呼叫附加一個特殊的時間表時,該函式就是返回距該表描述的時間的數值。這樣的時間表有如下的區間:
year |
a full year |
month |
01-12 |
day |
01-31 |
hour |
01-31 |
min |
00-59 |
sec |
00-59 |
isdst |
a boolean, true if daylight saving |
前三項是必需的,如果未定義後幾項,預設時間為正午(12:00:00)。如果是在里約熱內盧(格林威治向西三個時區)的一臺Unix計算機上(相對時間為1970年1月1日,00:00:00)執行如下程式碼,其結果將如下。
– obs: 10800 = 3*60*60 (3 hours)
print(os.time{year=1970, month=1, day=1, hour=0})
–> 10800
print(os.time{year=1970, month=1, day=1, hour=0, sec=1})
–> 10801
print(os.time{year=1970, month=1, day=1})
–> 54000 (obs: 54000 = 10800 + 12*60*60)
os.time() <== 返回當前系統的日曆時間
os.date() <== 返回本地化的時間字串,這裡是”11/28/08 17:23:37″
os.date(“%x”, os.time()) <== 返回自定義格式化時間字串(完整的格式化引數),這裡是”11/28/08″
os.clock() <== 返回執行該程式CPU花去的時鐘秒數,這裡是1156.726
函式data,不管它的名字是什麼,其實是time函式的一種“反函式”。它將一個表示日期和時間的數值,轉換成更高階的表現形式。其第一個引數是一個格式化字串,描述了要返回的時間形式。第二個引數就是時間的數字表示,預設為當前的時間。使用格式字元 “*t”,建立一個時間表。例如下面這段程式碼:
temp = os.date(“*t”, 906000490)
則會產生表
{year = 1998, month = 9, day = 16, yday = 259, wday = 4,
hour = 23, min = 48, sec = 10, isdst = false}
不難發現該表中除了使用到了在上述時間表中的區域以外,這個表還提供了星期(wday,星期天為1)和一年中的第幾天(yday,一月一日為1)除了使用 “*t” 格式字串外,如果使用帶標記(見下表)的特殊字串,os.data函式會將相應的標記位以時間資訊進行填充,得到一個包含時間的字串。(這些特殊標記都是以 “%” 和一個字母的形式出現)如下:
print(os.date(“today is %A, in %B”))
–> today is Tuesday, in May
print(os.date(“%x”, 906000490))
–> 09/16/1998
這些時間輸出的字串表示是經過本地化的。所以如果是在巴西(葡萄牙語系),”%B” 得到的就是 “setembro”(譯者按:大概是葡萄牙語九月?),”%x” 得到的就是 “16/09/98″(月日次序不同)。標記的意義和顯示例項總結如下表。例項的時間是在1998年九月16日,星期三,23:48:10。返回值為數字形式的還列出了它們的範圍。(都是按照英語系的顯示描述的,也比較簡單,就不煩了)
%a |
abbreviated weekday name (e.g., Wed) |
%A |
full weekday name (e.g., Wednesday) |
%b |
abbreviated month name (e.g., Sep) |
%B |
full month name (e.g., September) |
%c |
date and time (e.g., 09/16/98 23:48:10) |
%d |
day of the month (16) [01-31] |
%H |
hour, using a 24-hour clock (23) [00-23] |
%I |
hour, using a 12-hour clock (11) [01-12] |
%M |
minute (48) [00-59] |
%m |
month (09) [01-12] |
%p |
either “am” or “pm” (pm) |
%S |
second (10) [00-61] |
%w |
weekday (3) [0-6 = Sunday-Saturday] |
%x |
date (e.g., 09/16/98) |
%X |
time (e.g., 23:48:10) |
%Y |
full year (1998) |
%y |
two-digit year (98) [00-99] |
%% |
the character ‘%’ |
事實上如果不使用任何引數就呼叫date,就是以%c的形式輸出。這樣就是得到經過格式化的完整時間資訊。還要注意%x、%X和%c由所在地區和計算機系統的改變會發生變化。如果該字串要確定下來(例如確定為mm/dd/yyyy),可以使用明確的字串格式方式(例如”%m/%d/%Y”)。
函式os.clock返回執行該程式CPU花去的時鐘秒數。該函式常用來測試一段程式碼。
local x = os.clock()
local s = 0
for i=1,100000 do s = s + i end
print(string.format(“elapsed time: %.2f\n”, os.clock() – x))
[plain] view plain copy print?- function Split(szFullString, szSeparator)
- local nFindStartIndex = 1
- local nSplitIndex = 1
- local nSplitArray = {}
- while true do
- local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
- if not nFindLastIndex then
- nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
- break
- end
- nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
- nFindStartIndex = nFindLastIndex + string.len(szSeparator)
- nSplitIndex = nSplitIndex + 1
- end
- return nSplitArray
- local begin_list = Split(tips.szBegin_time," ");
- local begin_date_str = string.format("%s",begin_list[1]);
- local begin_time_str = string.format("%s",begin_list[2]);
- local begin_data_list = Split(begin_date_str,"/");
- local being_time_list = Split(begin_time_str,":");
- local t1={
- year = begin_data_list[3],
- month = begin_data_list[1],
- day = begin_data_list[2],
- hour = being_time_list[1],
- min = being_time_list[2],
- sec = being_time_list[3],
- };
- begindate = os.time(t1);
- -- entime 轉換
- local end_list = Split(tips.szEnd_time," ");
- local end_date_str = string.format("%s",end_list[1]);
- local end_time_str = string.format("%s",end_list[2]);
- local end_data_list = Split(end_date_str,"/");
- local end_time_list = Split(end_time_str,":");
- local t2={
- year = end_data_list[3],
- month = end_data_list[1],
- day = end_data_list[2],
- hour = end_time_list[1],
- min = end_time_list[2],
- sec = end_time_list[3],
- };
- enddate = os.time(t2);
- --current string 轉換
- local cur_list = Split(currenttime," ");
- local cur_date_str = string.format("%s",cur_list[1]);
- local cur_time_str = string.format("%s",cur_list[2]);
- local cur_data_list = Split(cur_date_str,"/");
- local cur_time_list = Split(cur_time_str,":");
- local t3={
- year = cur_data_list[3]+2000,
- month = cur_data_list[1],
- day = cur_data_list[2],
- hour = cur_time_list[1],
- min = cur_time_list[2],
- sec = cur_time_list[3],
- };
- curdate = os.time(t3);
- -- local begin_time = os.date(tips.szBegin_time);
- -- local end_time = os.date(tips.szEnd_time);
- if curdate > begindate and curdate < enddate then
- return true
- else
- return false;
- end;
上述程式碼中tips.szEnd_time 和tips.szBegin_time 是兩個時間字串,格式為 “04/23/2015 17:43:12″
注意在設定t3 table的是,year加了2000,因為date返回的時間格式是 “04/23/15 17:43:12” ,如果不加2000,t3就會為nil
相關推薦
lua時間函式操作和對比程式碼,os.date() os.time()
time和date兩個函式在Lua中實現所有的時鐘查詢功能。函式time在沒有引數時返回當前時鐘的數值。(在許多系統中該數值是當前距離某個特定時間的秒數。)當為函式呼叫附加一個特殊的時間表時,該函式就是返回距該表描述的時間的數值。這樣的時間表有如下的區間: year a full year
lua 時間函式os.time()和os.date()
Lua標準庫中提供了關於時間函式 os.time()和os.date(),這兩個函式需要注意的地方就是加入了時區的概念 os.time() 得到是當前時間的距離1970.1.1.08:00時間的秒數,如果傳入的引數小於這個時間,那麼就會得到一個,秒數就是負數,會得到一個空
python優雅操作11行程式碼,竟然發現了室友U盤裡藏著這些……
那個猥瑣的傢伙整天把個U盤藏著當寶,到睡覺了就拿出來插到電腦上。 我決定想個辦法看他U盤裡都藏了什麼,直接去搶U盤是不可能的,騙也是不可能的。那不是丟我Python程式設計師的臉? 我必須在電腦上智取,而且不能被他發現。 當一個usb插入時,在後臺自動把usb裡的
php獲取前一天後一天,php時間函式操作
<?php date_default_timezone_set('PRC'); //預設時區 echo "今天:",date("Y-m-d",time()),"<br>"; echo "今天:",date("Y-m-d",strtotime("18 june 2008"
使用用 Angular CLI 來建立Angular2專案、應用和庫程式碼,以及檔案說明
1、要安裝CLI命令必須首先安裝Nodejs和npm包,npm包在裝好nodejs後自帶的。 2、首先建立一個目錄,用來建立Angular專案,如下圖所示: 3、開啟dos視窗,然後進入到此目錄中,如下圖所示: 4、安裝 Angular CLI,使用:npm instal
udp客戶端和伺服器程式碼,支援ipv6。
getaddrinfo這個函式隱藏了ipv4和ipv6的具體細節,強烈推薦使用。設定hints.ai_family = AF_UNSPEC後,getaddrinfo可以根據ip地址自動判斷是ipv4還是ipv6。當然也可以使用hints.ai_family = AF_INE
mysql函式的建立以及hibernate呼叫mysql自定義函式以及資料對比功能,模仿中關村線上
系統業務有這樣一個需求,每次版本進行變更時間,則需要建立新的記錄,而不是在原來的基礎上更替舊版本。 基於這樣一個小小的需求,所有在資料庫的設計時間,進行了表的自連線,當然這個只是假象的自連線,沒有進行表自身的外來鍵的對映;當有了很多的資料之後,需要加這個外來鍵已經提示無法進
《Linux作業系統分析》之使用庫函式API和C程式碼中嵌入彙編程式碼兩種方式使用同一個系統呼叫
本篇文章分析的是使用庫函式API和C程式碼中嵌入彙編程式碼兩種方式使用同一個系統呼叫,來說明在Linux系統中,系統呼叫的實現機制。 相關知識 首先關於這篇文章會介紹一些用到的知識。 一、什麼是核心態,什麼又是使用者態。 核心態:在高執行級別下,程式碼可以執行特權指令,
python中以鍵值對形式存放的容器-----------------字典(內有相關操作和示例程式碼)
#Filename:dictionary.py #字典類似於你通過聯絡人的名字查詢詳細的資訊,也就是以 #鍵值對的形式儲存,一個鍵對應一個值 #格式:key1:value1,key2:value2 #示例程式碼: #首先建立一個字典,以鍵值對的形式存在 dic={'1':'
web項目長時間未操作,退出登錄,跳轉到登錄頁面
銷毀 doc 移動 java ssi scrip cat over window <script type="text/javascript"> var lastTime = new Date().getTime();var currentT
PYTHON自動化Day6-函式多個返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密(md5)
一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的
演算法 -- 猴子選大王的四種方法,並對其時間與記憶體消耗的分析和對比&PHP
本篇利用PHP對“猴子選大王”問題,給出了四種方法,並對其進行了時間消耗的分析與對比。 題目:n個猴子要選出一個大王,隨機給出一個數m,當猴子報數為m的時候,則被淘汰,剩餘的最後一個猴子即為大王。 一、演算法解釋及程式碼展示 方法一:圍圈報數 n 個猴子圍成一圈從 1
JavaScript操作BOM物件 - document物件; history 和 location物件 ,對話方塊,Date時間物件
getElementById返回擁有指定id的第一個物件(注意只是一個且是第一個)getElementsByName返回帶有指定名稱的物件集合getElementsBytagNam返回指定標籤的物件集合例html程式碼<div class="content" > <div cl
關於ThinkPHP5.0*的軟刪除delete_time的引用和部分時間函式where(),whereTime()連貫操作的問題
關於ThinkPHP5.0*的軟刪除和部分時間函式連貫操作的問題 1、使用軟刪除,可實現邏輯刪除,有利於保護資料 使用軟刪除: 需要在model檔案中 引入 use trait\SoftDelete; 程式碼如下: <?php namespace
給出n個學生的考試成績表,每條記錄由學號、姓名和分數和名次組成,設計演算法完成下列操作: (1)設計一個顯示對學生資訊操作的選單函式如下所示: *************************
給出n個學生的考試成績表,每條記錄由學號、姓名和分數和名次組成,設計演算法完成下列操作: (1)設計一個顯示對學生資訊操作的選單函式如下所示: ************************* 1、錄
VC 遍歷資料夾所有檔名,程式碼簡短。下面函式是獲取YY賬號,(對xml的解析操作)
#include <filesystem> #include <string> #include <vector> #include "tinyxml.h" using namespace std; using namespace std:
C++模板的實現(模板函式和模板類,附帶模板實現順序表和連結串列程式碼)
模板 當我們實現一個交換函式時,我們可以寫成如下。 void Swap(int& x, int& y) { int tmp = x; x = y; y = tmp; } 這裡只能交換兩個整數,當我們
近日有需要寫點C#程式,有用到Dataset資料集和SQLite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘: 一、SQLite操作,直接貼程式碼,很簡單
近日有需要寫點C#程式,有用到Dataset資料集和SQLite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘: 一、SQLite操作,直接貼程式碼,很簡單: //建立一個數據庫檔案 string d
Lua中日期和時間函式詳解
最近在做Lua指令碼的時候,用到了Lua的日期和時間函式,發現其功能強大,學習一下!在Lua中,函式time和data提供了所有的日期和時間的功能,下面將這兩個函式分開學習。 time函式: 如果不帶任何引數呼叫time,它會返回一個數字,表示當前的日期和時間,改數字為
JAVA之類,建構函式和構造程式碼塊
類: 在我們的日常生活中,對於事物的描述無非就是描述事物的屬性和行為。如:人的身高,體重,年齡等稱為屬性,人會說話,會跑步,會做飯等等稱為行為。 而對於Java中的類,無非也是如此,包含了屬性和行為。 類的定義: 屬性:對應類中的成員變數行