Page 1 of 1

Numberic date convertion improval?

Posted: 05 Mar 2018, 22:34
by ivill
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 959 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
}
}

Re: Numberic date convertion improval?

Posted: 05 Mar 2018, 22:40
by BoBo
:arrow: FormatTime Set-/Format StrSplit()

Re: Numberic date convertion improval?

Posted: 05 Mar 2018, 23:03
by teadrinker

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*)
}