Difference between revisions of "ObjectType:time"

From Lavish Software Wiki
Jump to navigation Jump to search
Line 48: Line 48:
 
  TimeVar:Set[${Time.Timestamp}]
 
  TimeVar:Set[${Time.Timestamp}]
 
  echo ${TimeVar.Date} ${TimeVar.Time}
 
  echo ${TimeVar.Date} ${TimeVar.Time}
 +
 +
 +
== 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}
 +
;Outputs 12/31/1999
  
 
== Comparing time Values ==
 
== Comparing time Values ==

Revision as of 09:08, 5 June 2008

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
  • int 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)

Returns

Same as Time24

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 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}


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}

Outputs 12/31/1999

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!

Operates On

struct tm *

See Also