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