Ir para conteúdo
  • 0

[pedido] função que converte mes com o dia de uma string


drakylucas

Pergunta

Bom, tipo se eu faço um osdate assim:

os.date('%d/%m/%Y')

 

ele retorna certo, 27/04/2013

 

mas, eu preciso comparar essa data com outra data tipo

os.date('%d/%m/%Y') <= '04/30/2013'

 

isso ele retorna true, pq dia 27/04/2013 realmente é menor que 30/04/2013

mas, na tabela, todos os valores estão em Dia / Mes / Ano e preciso usar esses valores para comparação..

tem alguma função que, ao inserir 30/04/2013 no parametro dela, ela retorne 04/30/2013??

 

vlw

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Deixa eu ver se entendi você quer uma função que mude de lugar na string dia/mês para mês/dia

 

Se for e fácil

 

 
function dateString(string)
local function setDateStringTwoValues(string)
y = string
for i = 1, #y do
local t = string.sub(y, i, i)
if t == "/" and string.sub(y, i-2, i-2) == "" or t == "/" and string.sub(y, i-2, i-2) == "/" then
y = ""..string.sub(y, 1, i-2).."0"..string.sub(y, i-1, #y)..""
end
end
return y
end

local string = setDateStringTwoValues(string)
local y = string.sub(string, 1, 3)..string.sub(string, 7, 10)
local t = string.sub(string, 4, 6)..y
return t
end

print(dateString("6/1/2013"))

 

Funções acima analisa se a string verificando se o mês ou o dia tem apenas um único numeral.

E se tiver apenas um único numeral ex: 2 ela transforma em dois ex :02(Isto evita bug)

Depois ela só troca o lugar o mês pelo vice versa.

E pronto

Editado por caotic
Link para o comentário
Compartilhar em outros sites

  • 0

precisei só da segunda parte..

a data nao vem com 1 digito ^^

 

function convertDate(string)
local y = string.sub(string, 1, 3)..string.sub(string, 7, 10)
local t = string.sub(string, 4, 6)..y
return t
end

 

obrigadao caotic

@Moderadores: podem fechar

Link para o comentário
Compartilhar em outros sites

  • 0

precisei só da segunda parte..

a data nao vem com 1 digito ^^

 

function convertDate(string)
local y = string.sub(string, 1, 3)..string.sub(string, 7, 10)
local t = string.sub(string, 4, 6)..y
return t
end

 

obrigadao caotic

@Moderadores: podem fechar

 

Bem de qualquer maneira eu recomendo a utilização da função.

Porque se tiver apenas 1 digito vai bugar bastante a data.

 

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe, posso estar errado, mas não era mais fácil fazer isso, não entendi bem oque você queria mas se for comparar é bem mais fácil usar esse método.

 

DM7pq1tv[/pastebin]

 

Mas como já foi resolvido, reportado.

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...