In it's straightforward form
copyraw
FormatTime( TimeString, Format )
{
FormatTime, FormattedTime , TimeString, %Format%
return Formattedtime
}
- FormatTime( TimeString, Format )
- {
- FormatTime, FormattedTime , TimeString, %Format%
- return Formattedtime
- }
The following function is to convert a given SQL date or a European date formatted value:
copyraw
FormatDate(val)
{
; SQL format (yyyy-mm-dd HH:mm:ss)
IfInString, val, -
{
StringReplace, val, val, -,,All
StringReplace, val, val, :,,All
StringReplace, val, val, %A_Space%,,All
}
; Standard European format (dd/mm/yyyy HH:mm:ss)
IfInString, val, /
{
ThisTime:=SubStr(val, InStr(val, " ")+1)
StringReplace, ThisTime, ThisTime, :,,A
ThisTime=%ThisTime%
ThisDate:=SubStr(val, 1, InStr(val, " "))
ThisDate=%ThisDate%
ThisDate:=SubStr(ThisDate, 7) . SubStr(ThisDate, 4, 2) . SubStr(ThisDate, 1, 2)
ThisDate=%ThisDate%
val=%ThisDate%%ThisTime%
}
FormatTime, val, %val%, ddd dd-MMM-yyyy HH:mm:ss
Return val
}
// returns format Sat 01-Jan-2011 01:00:00
- FormatDate(val)
- {
- ; SQL format (yyyy-mm-dd HH:mm:ss)
- IfInString, val, -
- {
- StringReplace, val, val, -,,All
- StringReplace, val, val, :,,All
- StringReplace, val, val, %A_Space%,,All
- }
- ; Standard European format (dd/mm/yyyy HH:mm:ss)
- IfInString, val, /
- {
- ThisTime:=SubStr(val, InStr(val, " ")+1)
- StringReplace, ThisTime, ThisTime, :,,A
- ThisTime=%ThisTime%
- ThisDate:=SubStr(val, 1, InStr(val, " "))
- ThisDate=%ThisDate%
- ThisDate:=SubStr(ThisDate, 7) . SubStr(ThisDate, 4, 2) . SubStr(ThisDate, 1, 2)
- ThisDate=%ThisDate%
- val=%ThisDate%%ThisTime%
- }
- FormatTime, val, %val%, ddd dd-MMM-yyyy HH:mm:ss
- Return val
- }
- // returns format Sat 01-Jan-2011 01:00:00
The next function usually accompanies the above one. It will basically convert seconds into days, hours, minutes, etc.:
copyraw
FormatSeconds(val)
{
IfInString, val, -
{
Month:=SubStr(val, 8, 3)
Month:=Month * 1
Months=Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
StringSplit, MonthNameArray, Months, |
Month:=MonthNameArray%Month%
TimeString1:=SubStr(val, 12, 4)
TimeString1=%TimeString1%%Month%
TimeString1:=TimeString1 . SubStr(val, 5, 2) . SubStr(val, 17, 2) . SubStr(val, 20, 2) . SubStr(val, 23, 2)
TimeString2:=A_Now
EnvSub, TimeString2, %TimeString1%, Seconds
val:=TimeString2
}
strVal=
ThisDays:=val / 86400
IfInString, ThisDays, .
ThisDays:=SubStr(ThisDays, 1, InStr(ThisDays, ".")-1)
ThisHours:=(Mod(val, 86400)/3600)
IfInString, ThisHours, .
ThisHours:=SubStr(ThisHours, 1, InStr(ThisHours, ".")-1)
ThisMins:=(Mod(val, 3600)/60)
IfInString, ThisMins, .
ThisMins:=SubStr(ThisMins, 1, InStr(ThisMins, ".")-1)
ThisSecs:=Mod(val, 60)
IfInString, ThisSecs, .
ThisSecs:=SubStr(ThisSecs, 1, InStr(ThisSecs, ".")-1)
If ThisDays>0
{
If ThisDays>365
{
ThisYears:=ThisDays/365
IfInString, ThisYears, .
ThisYears:=SubStr(ThisYears, 1, InStr(ThisYears, ".")-1)
Grammar:=(ThisYears=1) ? "" : "s"
strVal=%ThisYears% year%Grammar%,
ThisDays:=ThisDays - (ThisYears*365)
Grammar:=(ThisDays=1) ? "" : "s"
strVal=%strVal% %ThisDays% day%Grammar%,
} else {
Grammar:=(ThisDays=1) ? "" : "s"
strVal=%ThisDays% day%Grammar%,
}
}
If ThisHours>0
{
Grammar:=(ThisHours=1) ? "" : "s"
strVal=%strVal% %ThisHours% hour%Grammar%,
}
If ThisMins>0
{
Grammar:=(ThisMins=1) ? "" : "s"
strVal=%strVal% %ThisMins% minute%Grammar%,
}
Grammar:=(ThisSecs=1) ? "" : "s"
strVal=%strVal% %ThisSecs% second%Grammar%
Return strVal
}
- FormatSeconds(val)
- {
- IfInString, val, -
- {
- Month:=SubStr(val, 8, 3)
- Month:=Month * 1
- Months=Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
- StringSplit, MonthNameArray, Months, |
- Month:=MonthNameArray%Month%
- TimeString1:=SubStr(val, 12, 4)
- TimeString1=%TimeString1%%Month%
- TimeString1:=TimeString1 . SubStr(val, 5, 2) . SubStr(val, 17, 2) . SubStr(val, 20, 2) . SubStr(val, 23, 2)
- TimeString2:=A_Now
- EnvSub, TimeString2, %TimeString1%, Seconds
- val:=TimeString2
- }
- strVal=
- ThisDays:=val / 86400
- IfInString, ThisDays, .
- ThisDays:=SubStr(ThisDays, 1, InStr(ThisDays, ".")-1)
- ThisHours:=(Mod(val, 86400)/3600)
- IfInString, ThisHours, .
- ThisHours:=SubStr(ThisHours, 1, InStr(ThisHours, ".")-1)
- ThisMins:=(Mod(val, 3600)/60)
- IfInString, ThisMins, .
- ThisMins:=SubStr(ThisMins, 1, InStr(ThisMins, ".")-1)
- ThisSecs:=Mod(val, 60)
- IfInString, ThisSecs, .
- ThisSecs:=SubStr(ThisSecs, 1, InStr(ThisSecs, ".")-1)
- If ThisDays>0
- {
- If ThisDays>365
- {
- ThisYears:=ThisDays/365
- IfInString, ThisYears, .
- ThisYears:=SubStr(ThisYears, 1, InStr(ThisYears, ".")-1)
- Grammar:=(ThisYears=1) ? "" : "s"
- strVal=%ThisYears% year%Grammar%,
- ThisDays:=ThisDays - (ThisYears*365)
- Grammar:=(ThisDays=1) ? "" : "s"
- strVal=%strVal% %ThisDays% day%Grammar%,
- } else {
- Grammar:=(ThisDays=1) ? "" : "s"
- strVal=%ThisDays% day%Grammar%,
- }
- }
- If ThisHours>0
- {
- Grammar:=(ThisHours=1) ? "" : "s"
- strVal=%strVal% %ThisHours% hour%Grammar%,
- }
- If ThisMins>0
- {
- Grammar:=(ThisMins=1) ? "" : "s"
- strVal=%strVal% %ThisMins% minute%Grammar%,
- }
- Grammar:=(ThisSecs=1) ? "" : "s"
- strVal=%strVal% %ThisSecs% second%Grammar%
- Return strVal
- }
Category: AutoHotkey :: Article: 384



Add comment