Dividir fecha y hora

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
kemazonico
Aprendiz de Mago
Mensajes: 29
Registrado: 26 May 2007, 19:25

Dividir fecha y hora

Mensaje por kemazonico »

Hola amigos, aca con otra duda sobre como podria dividir y convertit una fecha y hora del tipo: "20180220174000" a: "2018/02/20 17:40:00"
Actualmente lo hago mas o menos de esta manera:

Código: Seleccionar todo

#include <Date.au3>

$finicio = '20180220133700'

$sYear = StringLeft ( $finicio, 4)
$sMonth = StringLeft (StringTrimLeft ($finicio, 4), 2)
$sDay = StringLeft (StringTrimLeft ($finicio, 6), 2)
$sHou = StringLeft (StringTrimLeft ($finicio, 8), 2)
$sMin = StringLeft (StringTrimLeft ($finicio, 10), 2)
$sSec = StringLeft (StringTrimLeft ($finicio, 12), 2)

ConsoleWrite ( $sYear & "/" & $sMonth & "/" & $sDay & " " & $sHou & ":" & $sMin & ":" & $sSec & @CRLF)
Pero pense que quiza existe alguna función que pueda hacer esta tarea, es más para optiizar el código.

Como siempre, agradezco sus comentarios.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Dividir fecha y hora

Mensaje por Chefito »

La forma con lo que lo has hecho es correcta. Si quieres otras posibilidades, también puedes utilizar expresiones regulares. Te dejo 3 ejemplos de como hacerlo:

Código: Seleccionar todo

$finicio = '20180220133700'

$finicioFinal1 = StringRegExp($finicio, "(..)", 3)
$fechaHora = $finicioFinal1[0] & $finicioFinal1[1] & "/" & $finicioFinal1[2] & "/" & $finicioFinal1[3] & " " & $finicioFinal1[4] & ":" & $finicioFinal1[5] & ":" & $finicioFinal1[6]
MsgBox(0,"Prueba 1",$fechaHora)

$finicioFinal2 = StringRegExp($finicio, "(....)(..)(..)(..)(..)(..)", 3)
$fechaHora = $finicioFinal2[0] & "/" & $finicioFinal2[1] & "/" & $finicioFinal2[2] & " " & $finicioFinal2[3] & ":" & $finicioFinal2[4] & ":" & $finicioFinal2[5]
MsgBox(0,"Prueba 2",$fechaHora)

$finicioFinal3 = StringRegExp($finicio, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})", 3)
$fechaHora = $finicioFinal3[0] & "/" & $finicioFinal3[1] & "/" & $finicioFinal3[2] & " " & $finicioFinal3[3] & ":" & $finicioFinal3[4] & ":" & $finicioFinal3[5]
MsgBox(0,"Prueba 3",$fechaHora)
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Dividir fecha y hora

Mensaje por Dany »

Hola. Aquí otra alternativa.

Código: Seleccionar todo

Local $finicio = "20180220174000"
$finicio = StringRegExpReplace($finicio, '(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})', '$1/$2/$3 $4:$5:$6')
ConsoleWrite($finicio & @CRLF)

Saludos :smt027
  • ............................................Imagen
    ......................................Imagen
Responder