ObjectType:time

From Lavish Software Wiki
Jump to navigation Jump to search
Object Type Vitals
time
Defined By LavishScript
Inherits none
Reduces To Same as Time24
Variable Object Type time
Uses Sub-Types no
C/C++ Type struct tm *

Description

The time type describes a date and time of day. Many other details are available, such as the month, day of week, and so on. This type also provides basic time calculation functionality

Members

  • intptr Hour: Hour of the day (0-23)
  • intptr Minute: Minute of the hour (0-59)
  • intptr Second: Second of the minute (0-59)
  • int DayOfWeek: Day of the week (1-7)
  • intptr DayOfWeekPtr: Day of the week (0-6) - Mainly useful for *setting*
  • intptr Day: Day of the month (1-31 depending on the month)
  • int Month: Month of the year (1-12)
  • intptr MonthPtr: Month of the year (0-11) - Mainly useful for *setting*
  • int Year: Year
  • intptr YearPtr: Year-1900 (e.g. 0 is 1900, 100 is 2000) - Mainly useful for *setting*
  • string Time12: Time in hh:mm:ss given in 12-hour format
  • string Time24: Time in hh:mm:ss given in 24-hour format
  • string Date: Date in mm/dd/yyyy
  • bool Night: TRUE if current time is after 7pm and before 7am
  • int SecondsSinceMidnight: Number of seconds since midnight
  • uint Timestamp: Number of seconds since epoch (standard UNIX timestamp)

Methods

  • Set[timestamp]: Sets the value based on the given timestamp (standard UNIX timestamp, number of seconds since epoch)
  • Update: Updates the type after setting an individual member (NOT needed when using the Set method)

Declaring time Variables

time variables are initialized with a Timestamp. If a "default" is not given, it will default to the equivalent of timestamp 0.

Example 1

This sets a variable to the current time, which can be manipulated later.

Declare TimeVar time ${Time.Timestamp}

Setting date Values

declare myDate time local	
myDate.Day:Set[31]
myDate.MonthPtr:Set[11]	/*month -1 */
myDate.YearPtr:Set[99]	/*year -1900 */
myDate:Update
echo ${myDate.Date}
Output 12/31/1999

Setting time Values

time variables can be set as a whole by using the Set method, or some individual portions may be set via the intptr type's members. After setting individual portions, you should use time:Update in order to completely update the structure. This will make sure the date and time are actually valid -- for example, setting the "Day" to -1 and updating will result in the last day of the previous month.

Declare TimeVar time ${Time.Timestamp}
; Decrease the "day" by 14.  This may result in a negative value of Day, but 
; when TimeVar:Update is used, it will be the correct date for "2 weeks ago"
TimeVar.Day:Dec[14]
; This may show something like 05/-13/2005
echo ${TimeVar.Date}
; Update TimeVar 
TimeVar:Update
; This will be a real date
echo ${TimeVar.Date}
; This will set the timestamp to the current time and date again
TimeVar:Set[${Time.Timestamp}]
echo ${TimeVar.Date} ${TimeVar.Time}



Comparing time Values

Time comparison is actually quite simple. Rather than doing string comparisons, simply use the Timestamp member:

if "${TimeVar.Timestamp}>${Time.Timestamp}"
  echo TimeVar is ${Math.Calc[${TimeVar.Timestamp}-${Time.Timestamp}]} seconds into the future!


See Also

LavishScript Object Types