注释
社区兴趣团体现已从 Yammer 迁移到Microsoft Viva Engage。 若要加入 Viva Engage 社区并参与最新讨论,请填写 “请求访问财务和运营 Viva Engage 社区 ”表单,然后选择要加入的社区。
本文介绍日期运行时函数。
dayName
检索由数字指定的星期几的名称。
str dayName(int number)
参数
| 参数 | Description |
|---|---|
| 数字 | 一周内的一天数。 |
返回值
数字参数指定的星期几。
注解
number 参数的有效值为 1 到 7。 星期 一由 1、星期二到 2 和 7 表示。
Example
static void dayNameExample(Args _arg)
{
str s = dayName(1);
print "First day of the week's name is " + s;
pause;
}
dayOfMth
计算指定日期月份中的一天数。
int dayOfMth(date date)
参数
| 参数 | Description |
|---|---|
| date | 返回月份中日期的日期。 |
返回值
一个介于 1 和 31 之间的整数,指示指定日期的月份日期。
注解
dayOfMth(31\12\2001) // returns 31.
Example
static void dayOfMthExample(Args _arg)
{
date d = today();
int i = dayOfMth(d);
print "Today's day of the month is " + int2Str(i);
pause;
}
dayOfWk
计算指定日期的一周中的天数。 注意: 星期 一由 1、星期二到 2 和 7 表示。
int dayOfWk(date date)
参数
| 参数 | Description |
|---|---|
| date | 一个指示年份、月和日的 日期 值。 |
返回值
指定一周中的日期数。
Example
static void dayOfWkExample(Args _arg)
{
date d = today();
int i = dayOfWk(d);
print "Today's day of the week is " + int2Str(i);
pause;
}
dayOfYr
计算 1 月 1 日到指定日期之间的天数。
int dayOfYr(date _date)
参数
| 参数 | Description |
|---|---|
| _日期 | 指定年份、月和日的日期。 |
返回值
1 月 1 日至指定日期(含)之间的天数。
注解
1 月 1 日为 1,12 月 31 日为 365 或 366 ,具体取决于年份是否为跃年。
Example
static void dayOfYrExample(Args _arg)
{
date d = today();
int i = dayOfYr(d);
print "Today's day of the year is " + int2Str(i);
pause;
}
endMth
计算指定日期月份的最后一个日期。
date endMth(date date)
参数
| 参数 | Description |
|---|---|
| date | 一个指示一年、月和日的 日期 值。 |
返回值
指定月份中最后一天的 日期 值。
注解
endMth(02\2\1988); //Returns the date 29\2\1988 because 1988 is a leap year.
endMth(02\2\1989); //Returns the date 28\2\1989.
mkDate
基于三个整数创建一个日期,分别指示日、月和年。
date mkDate(int day, int month, int year)
参数
| 参数 | Description |
|---|---|
| 日 | 一个表示月份日期的整数。 |
| 月份 | 一个整数,表示年份的月份。 |
| 年 | 一个表示年份的整数,该年份必须介于 1900 和 2154 之间。 |
返回值
一个 日期 值,该值基于 日期、 月份和 年份 参数的值。
注解
如果日期无效,此方法返回 0 (零,1/1/1900)日期。
Example
static void mkDateExample(Args _arg)
{
date d;
// Returns the date 01\01\2005.
d = mkDate(1, 1, 2005);
print d;
pause;
}
mthName
检索指定月份的名称
str monthName(int number)
参数
| 参数 | Description |
|---|---|
| 数字 | 月份数。 |
返回值
指定月份的名称。
注解
number 参数的有效值为 1 到 12。 1 月表示为 1 和 12 月 12 日。
Example
static void mthNameExample(Args _arg)
{
// MthName(6) returns the text string "June".
str s = mthName(6);
print "Month name is " + s;
pause;
}
mthOfYr
检索指定日期年份中的月份数。 注意: 1 月为 1,2 月为 2,12 月 为 12。
int mthOfYr(date date)
参数
| 参数 | Description |
|---|---|
| date | 指定年、月和日的日期。 |
返回值
年份中月份的月份数,表示 日期 参数的月份。
Example
static void mthOfYrExample(Args _arg)
{
int i = mthOfYr(today());
print "The number of the month in today's date is " + int2Str(i);
pause;
}
nextMth
检索与指定日期最接近的下个月中的日期。
date nextMth(date date)
参数
| 参数 | Description |
|---|---|
| date | 下个月要匹配的日期。 |
返回值
与下个月中找到的指定日期最接近的匹配项。
注解
nextMth(29\2\1996); //returns 29/03/1996.
nextMth(31\1\1996); //returns 2921996, because 1996 is a leap year.
Example
static void nextMthExample(Args _arg)
{
date d = nextMth(today());
print "Closest date next month is "
+ date2Str(d, 2, 2, -1, 2, -1, 4);
pause;
}
nextQtr
检索与指定日期最接近的下一个季度中的日期。
date nextQtr(date date)
参数
| 参数 | Description |
|---|---|
| date | 在下一个季度匹配的日期。 |
返回值
与下一季度中找到的指定日期最接近的匹配项。
注解
例如, nextQtr(31\1\1\1998) 返回 30\4\1998。
Example
static void nextQtrExample(Args _arg)
{
date d = nextQtr(today());
print "Closest date next quarter is "
+ date2Str(d, 2, 2, -1, 2, -1, 4);
pause;
}
nextYr
检索与指定日期最接近的下一年中的日期。
date nextYr(date date)
参数
| 参数 | Description |
|---|---|
| date | 第二年要匹配的日期。 |
返回值
与第二年中找到的指定日期最接近的匹配项。
注解
例如, nextyr(29\2\1998) 返回 28\2\1999。
Example
static void nextYrExample(Args _arg)
{
date d = nextYr(today());
print "Closest date next year is "
+ date2Str(d, 2, 2, -1, 2, -1, 4);
pause;
}
prevMth
检索与指定日期最接近的上个月中的日期。
date prevMth(date date)
参数
| 参数 | Description |
|---|---|
| date | 上月要匹配的日期。 |
返回值
与上一个月中找到的指定日期最接近的匹配项。
注解
prevMth(31\3\1996); // Returns the date 29/02/1996 because 1996 is a leap year.
prevMth(28\2\1998); // Returns the date 28/01/1998.
prevQtr
检索上一个季度中与指定日期最接近的日期。
date prevQtr(date date)
参数
| 参数 | Description |
|---|---|
| date | 上一季度要匹配的日期。 |
返回值
与上一季度中找到的指定日期最接近的匹配项。
注解
prevQtr(30\4\1998); // Returns the date 30/01/1998.
prevQtr(29\5\1996); // Returns the date 29/02/1996, because 1996 is a leap year.
prevYr
检索与指定日期最接近的上一年中的日期。
date prevYr(date date)
参数
| 参数 | Description |
|---|---|
| date | 上一年要匹配的日期。 |
返回值
与上一年中找到的指定日期最接近的匹配项。
注解
prevYr(29\2\1996); //Returns the date 28/02/1995 because 1996 is a leap year.
prevYr(28\2\1998); //Returns the date 28/02/1997.
systemDateGet
检索会话日期(如果已设置)。
date systemDateGet()
返回值
如果已设置会话日期,则为会话日期;否则为系统日期。
注解
请考虑使用“工具”菜单上的“会话日期和时间”打开“会话日期和时间”页。 此页面可用于主动设置会话日期。 系统检测到此设置作后,对 systemDateGet 函数的后续调用将返回会话日期。 今天函数返回系统日期。 此函数不支持时区。
Example
以下示例显示 Infolog 窗口中的日期。
static void Job_systemDateGet(Args _arg)
{
info( date2Str(
systemDateGet(), // X++ language function.
321, // 321 = ymd
DateDay::Digits2,
DateSeparator::Hyphen, // separator1
DateMonth::Digits2,
DateSeparator::Hyphen, // separator2
DateYear::Digits4
)
);
/*********** Actual Infolog output
Message (03:46:00 pm)
2012-04-16
***********/
}
systemDateSet
更改系统日期。
date systemDateSet(date _date)
参数
| 参数 | Description |
|---|---|
| _日期 | 系统的新日期。 |
返回值
新系统日期。
注解
此函数不会影响会话日期。 此方法更改日期,但时间将设置为 0 (零)。
Example
以下示例将系统日期设置为今天的日期。
static void systemDateSetExample(Args _arg)
{
date d = today();
d = systemDateSet(d);
print d;
}
timeNow
检索当前系统时间。
int timeNow()
返回值
自午夜以来通过的秒数。
Example
static void timeNowExample(Args _arg)
{
int i = timeNow();
print "The number of seconds since midnight is " + int2Str(i);
pause;
}
今天
检索系统上的当前日期。
date today()
返回值
当前日期。
Example
static void todayExample(Args _arg)
{
date d = today();
print "Today's date is " + date2Str(d, 0, 2, -1, 2, -1, 4);
pause;
}
wkOfYr
根据 ISO 8601 规范计算日期属于年份的一周。
int wkOfYr(date _date)
参数
| 参数 | Description |
|---|---|
| _日期 | 计算年份周的日期。 |
返回值
_date参数发生的一周的序列号。
Example
下面的代码示例将 wkOfYr 函数与 Global::weekOfYear 方法进行比较。 函数和方法生成不同的结果。
// X++ job, under AOT > Jobs.
static void WeekTests3Job(Args _args)
{
int weekNum, i;
date dateTest;
str sMessages[];
//---------------------------------------------
sMessages[1] = "----- #1. For Sunday, January 5, 2003 -----";
dateTest = 512003; // DayMonthYear format.
weekNum = wkOfYr(dateTest);
sMessages[2] = int2str(weekNum) + " = wkOfYr funtion";
weekNum = Global::weekOfYear(dateTest);
sMessages[3] = int2str(weekNum) + " = Global::weekOfYear method";
//---------------------------------------------
sMessages[4] = " ";
sMessages[5] = "----- #2. For Wednesday, August 20, 2003 -----";
dateTest = 2082003;
weekNum = wkOfYr(dateTest);
sMessages[6] = int2str(weekNum) + " = wkOfYr funtion";
weekNum = Global::weekOfYear(dateTest);
sMessages[7] = int2str(weekNum) + " = Global::weekOfYear method";
//---------------------------------------------
sMessages[8] = " ";
sMessages[9] = "----- #3. For Sunday, December 28, 2003 -----";
dateTest = 28122003;
weekNum = wkOfYr(dateTest);
sMessages[10] = int2str(weekNum) + " = wkOfYr funtion";
weekNum = Global::weekOfYear(dateTest);
sMessages[11] = int2str(weekNum) + " = Global::weekOfYear method";
for (i=1; i<= 11; i++)
{
Global::info(sMessages[i]);
}
}
上一个示例将以下信息发送到 Infolog 以供显示。 输出显示 wkOfYr 和 Global::weekOfYear 之间存在差异。
Message (01:59:13 pm) -----
#1. For Sunday, January 5, 2003 ----- 1 = wkOfYr function 2 = Global::weekOfYear method -----
#2. For Wednesday, August 20, 2003 ----- 34 = wkOfYr function 34 = Global::weekOfYear method -----
#3. For Sunday, December 28, 2003 ----- 52 = wkOfYr function 1 = Global::weekOfYear method
年
从 日期 值检索年份。
int year(date _date)
参数
| 参数 | Description |
|---|---|
| _日期 | 返回年份的日期。 |
返回值
指定日期的年份。
注解
year(0221998); //Returns the value 1998.