Numberic date convertion improval?

Get help with using AutoHotkey (v1.1 and older) and its commands and hotkeys
User avatar
ivill
Posts: 124
Joined: 13 May 2016, 02:23

Numberic date convertion improval?

05 Mar 2018, 22:34

Hi, I use the following script to convert numberic date to format year . month . date
but sometimes it's not stable...not work for all possible existing format, anyway i didn't found smilar script in our forum, is there any simple and stable way to convert date like this? thanks!
20180306112449.png
20180306112449.png (3.13 KiB) Viewed 953 times
in the attachment example i want to convert B3 B4 B5 B6 B7 to 20180201

Code: Select all

leaveDate := objExcel.Range("B" A_index+2).Value
IfInString, leaveDate, /
{
StringLeft, checkvar, leaveDate, 4

if (checkvar="2018")
{
StringTrimLeft, f2, leaveDate, 6
StringLeft, f3, f2, 1
if (f3="/")
{
year := SubStr(leaveDate, 1, 4)
month := "0" . SubStr(leaveDate, 6, 1)
date := SubStr(leaveDate, 8, 2)
formattedTime := year . month . date
}
else
{
year := SubStr(leaveDate, 1, 4)
month := SubStr(leaveDate, 6, 2)
date := SubStr(leaveDate, 9, 2)
}
}

else
{
year := "20" . SubStr(leaveDate, 1, 2)
month := SubStr(leaveDate, 3, 2)
date := SubStr(leaveDate, 5, 3)
formattedTime := year . month . date
StringTrimLeft, f2, formattedTime, 6
StringLeft, f3, f2, 1
if (f3="/")
{
year := "20" . SubStr(leaveDate, 1, 2)
month := "0" . SubStr(leaveDate, 4, 1)
date := SubStr(leaveDate, 6, 2)
formattedTime := year . month . date
}
else
{
year := "20" . SubStr(leaveDate, 1, 2)
month := SubStr(leaveDate, 4, 2)
date := SubStr(leaveDate, 7, 2)
formattedTime := year . month . date
}
}
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Numberic date convertion improval?

05 Mar 2018, 22:40

:arrow: FormatTime Set-/Format StrSplit()
teadrinker
Posts: 4368
Joined: 29 Mar 2015, 09:41
Contact:

Re: Numberic date convertion improval?

05 Mar 2018, 23:03

Code: Select all

var1 := "18/02/01"
var2 := "18/2/01"
var3 := "18/02/1"
var4 := "18/2/1"
var5 := "2018/02/01"

Loop 5  {
   RegExMatch(var%A_Index%, "(\d+)/(\d+)/(\d+)", d)
   MsgBox, % "20" . SubStr(d1, -1) . Format("{1:02}{2:02}", d2, d3)
}
; or
Loop 5  {
   arr := StrSplit(var%A_Index%, "/")
   MsgBox, % "20" . SubStr(arr[1], -1) . Format("{2:02}{3:02}", arr*)
}

Return to “Ask for Help (v1)”

Who is online

Users browsing this forum: CoffeeChaton, NimRinon and 169 guests