99 lines
2.6 KiB
Plaintext
99 lines
2.6 KiB
Plaintext
EnableExplicit
|
|
|
|
Procedure.i ToPBDate(Date$, *zone.String)
|
|
Protected year, month, day, hour, minute
|
|
Protected month$, temp$, time$, pm$, zone$
|
|
month$ = StringField(date$, 1, " ")
|
|
day = Val(StringField(date$, 2, " "))
|
|
year = Val(StringField(date$, 3, " "))
|
|
time$ = StringField(date$, 4, " ")
|
|
zone$ = StringField(date$, 5, " ")
|
|
|
|
Select month$
|
|
Case "January" : month = 1
|
|
Case "February" : month = 2
|
|
Case "March" : month = 3
|
|
Case "April" : month = 4
|
|
Case "May" : month = 5
|
|
Case "June" : month = 6
|
|
Case "July" : month = 7
|
|
Case "August" : month = 8
|
|
Case "September" : month = 9
|
|
Case "October" : month = 10
|
|
Case "November" : month = 11
|
|
Case "December" : month = 12
|
|
EndSelect
|
|
|
|
hour = Val(StringField(time$, 1, ":"))
|
|
temp$ = StringField(time$, 2, ":")
|
|
minute = Val(Left(temp$, 2))
|
|
pm$ = Right(temp$, 2)
|
|
|
|
If pm$ = "am"
|
|
If hour = 12 : hour = 0 : EndIf
|
|
Else
|
|
If hour <> 12 : hour + 12 : EndIf
|
|
EndIf
|
|
|
|
*zone\s = zone$
|
|
ProcedureReturn Date(year, month, day, hour, minute, 0)
|
|
EndProcedure
|
|
|
|
Procedure.s FromPBDate(Date, zone$)
|
|
Protected year$ = Str(Year(Date))
|
|
Protected month = Month(Date)
|
|
Protected day$ = Str(Day(Date))
|
|
Protected hour = Hour(Date)
|
|
Protected minute = Minute(Date)
|
|
Protected month$, time$, pm$, result$
|
|
|
|
Select month
|
|
Case 1 : month$ = "January"
|
|
Case 2 : month$ = "February"
|
|
Case 3 : month$ = "March"
|
|
Case 4 : month$ = "April"
|
|
Case 5 : month$ = "May"
|
|
Case 6 : month$ = "June"
|
|
Case 7 : month$ = "July"
|
|
Case 8 : month$ = "August"
|
|
Case 9 : month$ = "September"
|
|
Case 10 : month$ = "October"
|
|
Case 11 : month$ = "November"
|
|
Case 12 : month$ = "December"
|
|
EndSelect
|
|
|
|
If hour > 12
|
|
hour - 12
|
|
pm$ = "pm"
|
|
ElseIf hour = 12
|
|
pm$ = "pm"
|
|
Else
|
|
If hour = 0 : hour = 12 : EndIf
|
|
pm$ = "am"
|
|
EndIf
|
|
|
|
time$ = Str(hour) + ":" + RSet(Str(minute), 2, "0") + pm$
|
|
result$ = month$ + " " + day$ + " " + year$ + " " + time$ + " " + zone$
|
|
ProcedureReturn result$
|
|
EndProcedure
|
|
|
|
Define date
|
|
Define date1$, date2$
|
|
Define zone.String
|
|
|
|
If OpenConsole()
|
|
date1$ = "March 7 2009 7:30pm EST"
|
|
PrintN("Starting date/time : " + date1$)
|
|
date = ToPBDate(date1$, @zone)
|
|
date = AddDate(date, #PB_Date_Hour, 12); add 12 hours
|
|
date2$ = FromPBDate(date, zone\s)
|
|
PrintN("12 hours later : " + date2$)
|
|
date = AddDate(date, #PB_Date_Hour, 5); adjust to GMT
|
|
date2$ = FromPBDate(date, "GMT")
|
|
PrintN("Or in GMT timezone : " + date2$)
|
|
PrintN("")
|
|
PrintN("Press any key to close the console")
|
|
Repeat: Delay(10) : Until Inkey() <> ""
|
|
CloseConsole()
|
|
EndIf
|