Date and Time
In this chapter we are going to learn about the date and time functions.
Clock() Function
Syntax:
Clock() ---> The number of clock ticks from program start
Example:
See "Calculate performance" + nl
t1 = clock()
for x = 1 to 1000000 next
see clock() - t1
ClocksPerSecond() Function
Return how many clocks in one second
Syntax:
clockspersecond() ---> Number of clocks in one second
Example:
# Wait 1 second
t = clock()
while clock() - t <= clockspersecond() end
Time() Function
We can get the system time using the Time() function.
Example:
See "Time : " + time()
Date() Function
We can get the date using the Date() function.
Syntax:
Date() ---> String represent the date "dd/mm/yyyy"
Example:
See "Date : " + date()  # Date : 24/05/2015
TimeList() Function
We can print the date and the time information using the TimeList() function.
Syntax:
TimeList() ---> List contains the time and date information.
The next table presents the list items
index  | 
value  | 
|---|---|
1  | 
abbreviated weekday name  | 
2  | 
full weekday name  | 
3  | 
abbreviated month name  | 
4  | 
full month name  | 
5  | 
Date & Time  | 
6  | 
Day of the month  | 
7  | 
Hour (24)  | 
8  | 
Hour (12)  | 
9  | 
Day of the year  | 
10  | 
Month of the year  | 
11  | 
Minutes after hour  | 
12  | 
AM or PM  | 
13  | 
Seconds after the hour  | 
14  | 
Week of the year (sun-sat)  | 
15  | 
day of the week  | 
16  | 
date  | 
17  | 
time  | 
18  | 
year of the century  | 
19  | 
year  | 
20  | 
time zone  | 
21  | 
percent sign  | 
Example:
/* Output:
** Sun                  abbreviated weekday name
** Sunday               full weekday name
** May                  abbreviated month name
** May                  full month name
** 05/24/15 09:58:38    Date & Time
** 24                   Day of the month
** 09                   Hour (24)
** 09                   Hour (12)
** 144                  Day of the year
** 05                   Month of the year
** 58                   Minutes after hour
** AM                   AM or PM
** 38                   Seconds after the hour
** 21                   Week of the year (sun-sat)
** 0                    day of the week
** 05/24/15             date
** 09:58:38             time
** 15                   year of the century
** 2015                 year
** Arab Standard Time   time zone
** %                    percent sign
*/
See TimeList()
Example:
See "Day Name : " + TimeList()[2]       # Sunday
Example:
See "Month Name : " + TimeList()[4]     # May
AddDays() Function
Syntax:
AddDays(cDate,nDays) ---> Date from cDate and after nDays
Example:
cDate = date()
see cDate + nl                  # 24/05/2015
cDate = adddays(cDate,10)
see cDate + nl                  # 03/06/2015
DiffDays() Function
Syntax:
DiffDays(cDate1,cDate2) ---> number of days (Date1 - Date2)
Example:
cDate1 = date()
see cDate1 + nl                                         # 24/05/2015
cDate2 = adddays(cDate1,10)
see cDate2 + nl                                         # 03/06/2015
see "DiffDays = " + diffdays(cDate1,cDate2) + nl        # -10
see "DiffDays = " + diffdays(cDate2,cDate1) + nl        # 10
EpochTime() Function
Syntax:
EpochTime( cDate, cTime ) ---> Epoch Seconds
Example:
###-------------------------------------------------------------
# EpochTime()
# Example ---  EpochSec = EpochTime( Date(), Time() )
# Call Format: EpochSec = EpochTime( "15/07/2016", "10:15:30" )
#              EpochSec = 1468577730
#---------------------------------------------------------------
Func EpochTime(Date, Time)
    arrayDate = split(Date, "/")
    arrayTime = split(Time, ":")
    Year = arrayDate[3] ; Month  = arrayDate[2] ; Day    = arrayDate[1]
    Hour = arrayTime[1] ; Minute = arrayTime[2] ; Second = arrayTime[3]
    cDate1    = Day +"/"+ Month +"/"+ Year
    cDate2    = "01/01/" + Year
    DayOfYear = DiffDays( cDate1, cDate2)
    ### Formula
    tm_sec  = Second    * 1
    tm_min  = Minute    * 60
    tm_hour = Hour      * 3600
    tm_yday = DayOfYear * 86400
    tm_year = Year      - 1900
    tm_year1 =         ( tm_year -  70)          * 31536000
    tm_year2 = ( floor(( tm_year -  69) /   4 )) * 86400
    tm_year3 = ( floor(( tm_year -   1) / 100 )) * 86400
    tm_year4 = ( floor(( tm_year + 299) / 400 )) * 86400
    ### Result
    EpochSec = tm_sec + tm_min + tm_hour + tm_yday +
               tm_year1 + tm_year2 - tm_year3 + tm_year4
return EpochSec