四、日期、时间函数
1、Day()
功 能:得到日期型数据中的号数(1到31之间的整数值)。
语 法:Day ( date )
参 数:date:要得到号数的日期值。
返回值:Integer。函数执行成功时返回号数(1到31之间的整数值)。如果date参数的值为NULL,则Day()函数返回NULL。
示 例:These statements extract the day (31) from the date literal 1994-01-31 and set li_day_portion to that value:
integer li_day_portion
li_day_portion = Day(1994-01-31)
These statements check to be sure the date in sle_date is valid, and if so set li_day_portion to the day in the sle_date:
integer li_day_portion
IF IsDate(sle_date.Text) THEN
li_day_portion = Day(Date(sle_date.Text))
ELSE
MessageBox("Error", "This date is invalid: " + sle_date.Text)
END IF
2、DayName()
功 能:得到指定日期是一周中的星期几(例如,Sunday, Monday...)。
语 法:DayName ( date )
参 数:date:date类型值或变量。
返回值:String。函数执行成功时返回指定日期的星期表示(例如,Sunday, Monday...)。如果date参数的值为NULL,则DayName()函数返回NULL。
示 例:These statements evaluate the date literal 1993-07-04 and set day_name to Sunday:
string day_name
day_name = DayName(1993-07-04)
These statements check to be sure the date in sle_date is valid, and if so set day_name to the day in sle_date:
string day_name
IF IsDate(sle_date.Text) THEN
day_name = DayName(Date(sle_date.Text))
ELSE
MessageBox("Error", "This date is invalid: " + sle_date.Text)
END IF
3、DayNumber()
功 能:得到日期型数据是一星期中的第几天(用1到7之间的整数表示,星期天为1,星期一为2,...)。
语 法:DayNumber ( date )
参 数:date:date类型值或变量。
返回值:Integer。函数执行成功时返回指定日期是一星期中的第几天(用1~7表示,星期天为1,星期一为2,...)。如果date参数的值为NULL,则DayNumber()函数返回NULL。
示 例:These statements evaluate the date literal 1990-01-31 and set day_nbr to 4 (January 31, 1990, was a Wednesday):
integer day_nbr
day_nbr = DayNumber(1990-01-31)
These statements check to be sure the date in sle_date is valid, and if so set day_nbr to the number of the day in the sle_date:
integer day_nbr
IF IsDate(sle_date.Text) THEN
day_nbr = DayNumber(Date(sle_date.Text))
ELSE
MessageBox("Error", "This date is invalid: " + sle_date.Text)
END IF
4、DaysAfter()
功 能:得到两个日期间的天数。
语 法:DaysAfter ( date1, date2 )
参 数:date1:date类型,指定起始日期;
date2:date类型,指定终止日期。
返回值:Long。函数执行成功时得到两个日期之间的天数。如果date2的日期在date1的前面,那么DaysAfter()函数返回负值。如果任何参数的值为NULL,则DaysAfter()函数返回NULL。
示 例:1、This statement returns 4:
DaysAfter(2002-12-20, 2002-12-24)
2、This statement returns -4:
DaysAfter(2002-12-24, 2002-12-20)
3、This statement returns 0:
DaysAfter(2003-12-24, 2003-12-24)
4、This statement returns 5:
DaysAfter(2003-12-29, 2004-01-03)
5、If you declare date1 and date2 date variables and assign February 16, 2003, to date1 and April 28, 2003, to date2 as follows:
date date1, date2
date1 = 2003-02-16
date2 = 2003-04-28
then each of the following statements returns 71:
DaysAfter(date1, date2)
DaysAfter(2003-02-16, date2)
DaysAfter(date1, 2003-04-28)
DaysAfter(2003-02-16, 2003-04-28)
5、Hour()
功 能:得到时间值中的小时,采用24小时制。
语 法:Hour ( time )
参 数:time:time类型的值。
返回值:Integer。函数执行成功时得到time参数中的小时(00到23之间)。如果time参数的值为NULL,则Hour()函数返回NULL。
示 例:1、This statement returns the current hour:
Hour(Now())
2、This statement returns 19:
Hour(19:01:31)
6、Minute()
功 能:得到时间值中的分钟,有效值在00~59之间。
语 法:Minute ( time )
参 数:time:time类型的值。
返回值Integer。函数执行成功时得到time参数中的分钟(00到59之间)。如果time参数的值为NULL,则Minute()函数返回NULL。
示 例:This statement returns 1:
Minute(19:01:31)
7、Month()
功 能:得到日期值中的月份,有效值在1~12之间。
语 法:Month ( date )
参 数:date:date类型的值。
返回值:Integer。函数执行成功时得到date参数中的月份(1到12之间)。如果date参数的值为NULL,则Month()函数返回NULL。
示 例:This statement returns 1:
Month(1994-01-31)
These statements store in start_month the month entered in the SingleLineEdit sle_start_date:
integer start_month
start_month = Month(date(sle_start_date.Text))
8、Now()
功 能:得到客户机的当前系统时间,返回值为Time类型。
语 法:Now()
返回值:Time。该函数返回客户机的当前系统时间。
示 例:This statement returns the current system time.
Now()
This example displays the current time in the StaticText st_time. It keeps the time up-to-date by setting a timer that triggers a Timer event every 60 seconds. Code in the window's Open event displays the initial time and starts the timer. Code in the Timer event displays the time again.
The following code appears in the window's Open event script:
st_time.Text = String(Now(), "hh:mm")
Timer(60)
A single line in the Timer event script refreshes the time display:
st_time.Text = String(Now(), "hh:mm")
9、RelativeDate()
功 能:得到指定日期前多少天或后多少天的日期。
语 法:RelativeDate(date,n)
参 数:date:Date类型,指定基准日期
n:integer类型,指定天数。
返回值:Date。当n的值大于0时返回参数date指定日期后第n天的日期;当n的值小于0时返回参数date指定日期前第n天的日期。如果任何参数的值为NULL,则RelativeDate()函数返回NULL。
示 例:This statement returns 1990-02-10:
RelativeDate(1990-01-31, 10)
This statement returns 1990-01-21:
RelativeDate(1990-01-31, - 10)
10、RelativeTime()
功 能:得到指定时间前多少秒或后多少秒的时间,采用24小时制。
语 法:RelativeTime ( time, n )
参 数:time:time类型,指定基准时间
n:long类型,指定秒数。
返回值:Time。当n的值大于0时返回参数time指定时间后第n秒的时间;当n的值小于0时返回参数time指定时间前第n秒的时间。如果任何参数的值为NULL,则RelativeTime()函数返回NULL。
示 例:This statement returns 19:01:41:
RelativeTime(19:01:31, 10)
This statement returns 19:01:21:
RelativeTime(19:01:31, - 10)
11、Second()
功 能:得到时间值中的秒,有效值在00~59之间。
语 法:Second ( time )
参 数:time:time类型的值。
返回值:Integer。函数执行成功时得到time参数中的秒(00到59之间)。如果time参数的值为NULL,则Second()函数返回NULL。
示 例:This statement returns 31:
Second(19:01:31)
11、Second()
功 能:得到时间值中的秒,有效值在00~59之间。
语 法:Second ( time )
参 数:time:time类型的值。
返回值:Integer。函数执行成功时得到time参数中的秒(00到59之间)。如果time参数的值为NULL,则Second()函数返回NULL。
示 例:This statement returns 31:
Second(19:01:31)
12、SecondsAfter()
功 能:得到两个时间之间的秒数。让前一个时间比后一个时间早时,该函数的值为正数;两者相等时为零;反之则为负数。
语 法:SecondsAfter ( time1 , time2 )
参 数:time1:time类型的值,要度量的时间间隔的起始值;
time2:time类型的值,要度量的时间间隔的结束值;
返回值:Long。函数执行成功时返回起始时间和结束时间之间的秒数。如果任何参数的值为NULL,则函数返回NULL。
示 例:This statement returns 15:
SecondsAfter(21:15:30, 21:15:45)
This statement returns -15:
SecondsAfter(21:15:45, 21:15:30)
This statement returns 0:
SecondsAfter(21:15:45, 21:15:45)
If you declare start_time and end_time time variables and assign 19:02:16 to start_time and 19:02:28 to end_time as shown below:
time start_time, end_time
start_time = 19:02:16
end_time = 19:02:28
then each of these statements returns 12:
SecondsAfter(start_time, end_time)
SecondsAfter(19:02:16, end_time)
SecondsAfter(start_time, 19:02:28)
SecondsAfter(19:02:16, 19:02:28)
13、Today()
功 能:得到当前系统日期,在某些情况下,同时得到当前系统时间。
语 法:Today()
返回值:Date。该函数返回当前系统日期。
用 法:单独调用Today()函数时,该函数总是返回当前系统日期,但是,虽然Today()函数的返回值类型为Date,在该函数用做某些函数的参数、而该参数要求DateTime类型的值时,Today()函数也能够在返回当前系统日期的同时返回当前系统时间。
再如,Today()函数作为数据窗口控件SetItem()函数的参数,该函数参数中指定的数据窗口列的数据类型为DateTime,那么当前系统日期和时间将同时设置到数据窗口指定项中。
示 例:This statement returns the current system date:
Today()
This statement executes some statements when the current system date is before April 15, 2003:
IF Today() < 2003-04-15 THEN ...
This statement displays the current date in the StaticText st_date in the corner of a window:
st_date.Text = String(Today(), "m/d/yy")
This statement displays the current date and time in the StaticText st_date:
st_date.Text = String(Today(), "m/d/yy hh:mm")
14、Year()
功 能:得到日期值中的年度(有效取值1000到3000)。
语 法:Year(date)
参 数:date:date类型的值。
返回值:Integer。函数执行成功时得到date参数中的年份(采用四位数字),发生错误时返回1900,如果date参数的值为NULL,则Year()函数返回NULL。
用 法:当应用程序把有两位数字表示年份的字符串转换成日期时,PowerBuilder根据下述规则选择世纪:如果年份值在00到49之间,PowerBuilder将年份中的世纪(前两位数字)当作20;如果年份值在50到99之间,PowerBuilder将年份中的世纪(前两位数字)当作19。比如,字符串"20-10-25"被PowerBuilder转换为2020-10-25;字符串"98-10-25"被PowerBuilder转换为1998-10-25。因此,如果应用程序中需要指定1950年之前的日期,应该使用四位数字表示年份,以避免引起歧义。PowerBuilder能够处理的年份从1000到3000之间。
示 例:This statement returns 1995:
Year(1995-01-31)