倒计时常用工具函数
比如: 超过天: 10天18时03分05秒, 不足1天: 18时03分05秒
1 function CD_DayHHmmss(sec, unitNames, noDayUnitNames) 2 if nil == unitNames or #unitNames < 4 then 3 unitNames = { "-", "-", "-", "" } 4 end 5 if nil == noDayUnitNames then noDayUnitNames = unitNames end 6 7 local unitSecArr = { 24 * 3600, 3600, 60, 1 } --天,时,分,秒的秒数 8 local tb = {} 9 for i=1,#unitSecArr do 10 local unitSec = unitSecArr[i] 11 local unitValue = math.floor(sec / unitSec) 12 tb[i] = unitValue 13 sec = sec - unitValue * unitSec 14 end 15 16 if tb[1] > 0 then 17 return string.format("%d%s%02d%s%02d%s%02d%s", tb[1], unitNames[1], tb[2], unitNames[2], tb[3], unitNames[3], tb[4], unitNames[4]) 18 end 19 return string.format("%02d%s%02d%s%02d%s", tb[2], noDayUnitNames[2], tb[3], noDayUnitNames[3], tb[4], noDayUnitNames[4]) 20 end
function CD_DayHHmm(sec, unitNames)
function CD_DayHH(sec, unitNames)
也是可以以此类推
超过天: 10天18时3分5秒, 不足1天: 18时3分5秒或18:3:5
1 function CD_DayHms(sec, unitNames, noDayUnitNames) 2 if nil == unitNames or #unitNames < 4 then 3 unitNames = { "-", "-", "-", "" } 4 end 5 if nil == noDayUnitNames then noDayUnitNames = unitNames end 6 7 local unitSecArr = { 24 * 3600, 3600, 60, 1 } --天,时,分,秒的秒数 8 local tb = {} 9 for i=1,#unitSecArr do 10 local unitSec = unitSecArr[i] 11 local unitValue = math.floor(sec / unitSec) 12 tb[i] = unitValue 13 sec = sec - unitValue * unitSec 14 end 15 16 if tb[1] > 0 then 17 return string.format("%d%s%d%s%d%s%d%s", tb[1], unitNames[1], tb[2], unitNames[2], tb[3], unitNames[3], tb[4], unitNames[4]) 18 end 19 return string.format("%d%s%d%s%d%s", tb[2], noDayUnitNames[2], tb[3], noDayUnitNames[3], tb[4], noDayUnitNames[4]) 20 end
超过天: 38:03:05或38时03分05秒, 不足1天: 08:03:05或08时03分05秒
1 function CD_Hourmmss(sec, unitNames) 2 if nil == unitNames or #unitNames < 4 then 3 unitNames = { "-", ":", ":", "" } 4 end 5 local unitSecArr = { 24 * 3600, 3600, 60, 1 } --天,时,分,秒的秒数 6 local tb = {} 7 for i=2,#unitSecArr do 8 local unitSec = unitSecArr[i] 9 local unitValue = math.floor(sec / unitSec) 10 tb[i] = unitValue 11 sec = sec - unitValue * unitSec 12 end 13 14 return string.format("%02d%s%02d%s%02d%s", tb[2], unitNames[2], tb[3], unitNames[3], tb[4], unitNames[4]) 15 end
超过天: 38:03:05或38时03分05秒, 不足1天: 08:03:05或08时03分05秒
1 function CD_Hourmm(sec, unitNames) 2 if nil == unitNames or #unitNames < 4 then 3 unitNames = { "-", ":", ":", "" } 4 end 5 local unitSecArr = { 24 * 3600, 3600, 60, 1 } --天,时,分,秒的秒数 6 local tb = {} 7 for i=2,3 do 8 local unitSec = unitSecArr[i] 9 local unitValue = math.floor(sec / unitSec) 10 tb[i] = unitValue 11 sec = sec - unitValue * unitSec 12 end 13 14 return string.format("%02d%s%02d%s", tb[2], unitNames[2], tb[3], unitNames[3]) 15 end
1 function CD_Minss(sec, unitNames) 2 if nil == unitNames or #unitNames < 4 then 3 unitNames = { "-", ":", ":", "" } 4 end 5 local unitSecArr = { 24 * 3600, 3600, 60, 1 } --天,时,分,秒的秒数 6 local tb = {} 7 for i=3,4 do 8 local unitSec = unitSecArr[i] 9 local unitValue = math.floor(sec / unitSec) 10 tb[i] = unitValue 11 sec = sec - unitValue * unitSec 12 end 13 14 return string.format("%02d%s%02d%s", tb[3], unitNames[3], tb[4], unitNames[4]) 15 end