Lua 학습 노트-간단한 시간 조작

1782 단어 Lua
배운 클라이언트 지식을 잠시 버리고 0부터 서버를 시작하겠습니다. 한 달 동안 힘내세요.
-- .......["TimeBegin"]={10,1},["TimeEnd"]={10,8}
function actJudgeActivityVisible(tReq)
	
	--local infotable = stringToTable(tReq.data)
	--local timebegin = infotable["TimeBegin"]
	--local timeend = infotable["TimeEnd"]
	
	local nowmouth = os.date("%m",os.time());
	local nowday = os.date("%d",os.time());
	
	for i = 1, #ActivityPlaza1Info do
		if	tonumber(nowmouth) >= ActivityPlazaList[i]["TimeBegin"][1] and
			tonumber(nowday) >= ActivityPlazaList[i]["TimeBegin"][2] and
			tonumber(nowmouth) <= ActivityPlazaList[i]["TimeEnd"][1] and
			tonumber(nowday) <= ActivityPlazaList[i]["TimeEnd"][2] then
			return 'T'
		else
			return 'F'
		end
	end
end

이것은 처음에 쓴 판단이 규정된 시간 내에 활동을 시작하는 기능이지만 방법이 효율에 영향을 미칠 수 있어 다시 써야 한다
내 생각은 표에 초수를 저장하고 추출해서 판단하는 것이다. 우선 나는 어느 날의 초수를 알아야 한다. 예를 들어 2015-10-80:00:00
코드
date = {
    year = 2015,
    month = 10,
    day = 8,
    hour = 0,
    min = 0,
    sec = 0
}
local t = os.time(date)
이렇게 하면 t가 초수입니다. 1443628800입니다.
그리고 코드는
function actJudgeActivityVisible(tReq)

	local nowday = tonumber(os.date("%m%d",os.time()));

	for i = 1, #ActivityPlaza1Info do
		-- 
		if ActivityPlazaList[i]["TimeBegin"] == 0 then
			return 'F'
		-- 
		local timeBegin = tonumber(os.date("%m%d",ActivityPlazaList[i]["TimeBegin"]))
		local timeEnd = tonumber(os.date("%m%d",ActivityPlazaList[i]["TimeEnd"]))
		-- 
		if	nowday >= timeBegin and
			nowday <= timeEnd then
			return 'T'
		else
			return 'F'
		end
	end
end

좋은 웹페이지 즐겨찾기