请教如何用lua把中文的时间转化为数字的秒?
本帖最后由 songtao 于 2016-5-25 05:17 AM 编辑只在论坛中找到了把中文数字转化为阿拉伯数字的方法。
但是如何转化中文的时间呢?
如题,比如:
uptime
北大侠客行已经执行了二天十六小时二十六分九秒。
再者
jobquery
│[主]萧峰任务 仍需一分四秒才能接到下个任务。 │
感谢!
北大侠客行MUD,中国最好的MUD function parseTime(strTime)
local strMode = "(%d+)-(%d+)-(%d+)%s*(%d+):(%d+):(%d+)"
local pos, len, year, month, day, hour, min, sec = string.find(strTime, strMode)
local time = {}
time.year = tonumber(year) or 1970
time.month = tonumber(month) or 1
time.day = tonumber(day) or 1
time.hour = tonumber(hour) or 0
time.min = tonumber(min) or 0
time.sec = tonumber(sec) or 0
function time.tostring ()
return time.year.."-"..time.month.."-"..time.day.." "..time.hour..":"..time.min..":"..time.sec
end
return time
end 回复 2# shrimps
lua高手~膜拜yct23yct23yct23 本帖最后由 acdd 于 2016-5-25 03:18 PM 编辑
function ZhuanALaBoShuZi(MeiYouXie)
--中文转阿拉伯数字,好象论坛上有,所以偶木有写。。。
end
function DuoShao(RiQi, DanWeiMingCheng)
local WeiZhi, ZhongWenShuZi;
WeiZhi = string.find(RiQi, DanWeiMingCheng);
if (WeiZhi == nil) then
return RiQi, 0;
end
ZhongWenShuZi = string.sub(RiQi, 1, WeiZhi - 1);
RiQi = string.sub(RiQi, WeiZhi + string.len(DanWeiMingCheng));
return RiQi, ZhuanALaBoShuZi(ZhongWenShuZi);
end
function ZhuanHuan(RiQi)
local Miao, DanWeiMingCheng, DanWeiShuZhi, MeiDanWeiMiaoShu;
local i;
DanWeiMingCheng = {"天", "小时", "分", "秒"};
--不能转带年和月的。偶不会写。。
MeiDanWeiMiaoShu = {3600 * 24, 3600, 60, 1}
Miao = 0;
for i = 1, #DanWeiMingCheng do
RiQi, DanWeiShuZhi = DuoShao(RiQi, DanWeiMingCheng);
Miao = Miao + DanWeiShuZhi * MeiDanWeiMiaoShu;
end
return Miao;
end
print(ZhuanHuan("二天十六小时二十六分九秒")) -- 输出的是231969,貌似是对的。。 本帖最后由 songtao 于 2016-5-26 12:29 AM 编辑
我特别喜欢二楼的简洁,特别喜欢四楼的风格。
非常感谢。(二楼的没看懂,不知道怎么触发。)
三楼需要 @futa酱 评论。 只在论坛中找到了把中文数字转化为阿拉伯数字的方法。
但是如何转化中文的时间呢?
如题,比如:
uptime ...
songtao 发表于 2016-5-25 05:14 AM http://www.pkuxkx.net/forum/images/common/back.gif
我是觉得你这个问题提得比较不容易理解
如果按我个人的理解的话,把你需要的中文数字提取出来转成阿拉伯数字然后放进相应的位置就好了吧?
比如
北大侠客行已经执行了二天十六小时二十六分九秒。
local _,_,day,hour,min,sec=string.find ("北大侠客行已经执行了二天十六小时二十六分九秒。","北大侠客行已经执行了(%S+)天(%S+)小时(%S+)分(%S+)秒。")
再者
jobquery
│[主]萧峰任务 仍需一分四秒才能接到下个任务。
local _,_,min,sec=string.find ("│[主]萧峰任务 仍需一分四秒才能接到下个任务。","仍需(%S+)分(%S+)秒才能接到下个任务。")
页:
[1]