備註
社區興趣小組現在已從 Yammer 轉移到 Microsoft Viva Engage。 若要加入 Viva Engage 社群並參與最新的討論,請填寫 [ 要求存取財務和營運 Viva Engage 社群 表單 」 ,並選擇您要加入的社群。
本文說明日期執行時間函式。
日期名稱
擷取由數字指定的星期幾名稱。
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;
}
月日
計算指定日期的月份日數。
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;
}
週日
計算指定日期的一週中的天數。 便條: 星期一由 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;
}
日數
計算 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;
}
結束月末
計算指定日期當月的最後日期。
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 (零,1900 年 1 月 1 日) 日期。
Example
static void mkDateExample(Args _arg)
{
date d;
// Returns the date 01\01\2005.
d = mkDate(1, 1, 2005);
print d;
pause;
}
mth名稱
擷取指定月份的名稱
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;
}
月數
擷取指定日期的年份月份數。 便條: 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;
}
下一個月號
擷取下個月中與指定日期最接近的日期。
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;
}
下一個季度
擷取下一季中與指定日期最接近的日期。
date nextQtr(date date)
參數
| 參數 | Description |
|---|---|
| date | 下一季要比對的日期。 |
返回值
在下一季找到的與指定日期最接近的相符項。
備註
例如, nextQtr(31\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;
}
下一年
擷取與指定日期最接近的下一年日期。
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;
}
上一頁
擷取上個月中與指定日期最接近的日期。
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.
上一頁Qtr
擷取上一季中最接近指定日期的日期。
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.
上一頁
擷取前一年中與指定日期最接近的日期。
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 函式會傳回階段作業日期。 today 函數會傳回系統日期。 此功能不支援時區。
Example
下列範例顯示「資訊日誌」視窗中的日期。
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
***********/
}
系統日期集
變更系統日期。
date systemDateSet(date _date)
參數
| 參數 | Description |
|---|---|
| _日期 | 系統的新日期。 |
返回值
新系統日期。
備註
此功能不會影響工作階段日期。 此方法會變更日期,但時間會設定為 0 (零)。
Example
下列範例將系統日期設定為今天的日期。
static void systemDateSetExample(Args _arg)
{
date d = today();
d = systemDateSet(d);
print d;
}
時間現在
擷取目前的系統時間。
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;
}
週數
根據 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]);
}
}
上一個範例將下列資訊傳送至資訊日誌以供顯示。 輸出顯示 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.