Dividir fecha y hora

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.

Dividir fecha y hora

Notapor kemazonico » 20 Feb 2018, 23:56

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.
kemazonico
 
Mensajes: 27
Registrado: 26 May 2007, 19:25

Re: Dividir fecha y hora

Notapor Chefito » 11 Mar 2018, 20:05

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
Chefito
Profesional del Autoit
 
Mensajes: 2033
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Dividir fecha y hora

Notapor Dany » 17 Mar 2018, 19:30

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
Avatar de Usuario
Dany
Profesional del Autoit
 
Mensajes: 648
Registrado: 28 Mar 2012, 22:49


Volver a Soporte (Ayuda >Hacker)

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 7 invitados

cron