X++ 日付ランタイム関数
この記事では、日付ランタイム関数について説明します。
dayName
番号で指定されている曜日の名前を取得します。
str dayName(int number)
パラメーター
パラメーター | 説明 |
---|---|
数値 | 週内の日付の数。 |
戻り値
番号パラメーターで指定された曜日。
備考
番号のパラメーターの有効値は 1 ~ 7 です。 月曜日は 1、火曜日は 2、日曜日は 7 として表されます。
例
static void dayNameExample(Args _arg)
{
str s;
;
s = dayName(01);
print "First day of the week's name is " + s;
pause;
}
dayOfMth
指定された日付の月内の日数を計算します。
int dayOfMth(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | テストする日付。 |
戻り値
指定された日付の月の日を示す 1 から 31 までの整数。
備考
dayOfMth(31122001) //returns 31.
例
static void dayOfMthExample(Args _arg)
{
date d = today();
int i;
;
i = dayOfMth(d);
print "Today's day of the month is " + int2Str(i);
pause;
}
dayOfWk
指定された日付の週内の日数を計算します。 注記: 月曜日は 1、火曜日は 2、日曜日は 7 として表されます。
int dayOfWk(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 年、月、日を示す日付値。 |
戻り値
指定された曜日の数。
例
static void dayOfWkExample(Args _arg)
{
date d = today();
int i;
;
i = dayOfWk(d);
print "Today's day of the week is " + int2Str(i);
pause;
}
dayOfYr
1 月 1 日から指定された日までの日数を計算します。
int dayOfYr(date _date)
パラメーター
パラメーター | Description |
---|---|
_date | 年、月、日を指定する日付です。 |
戻り値
1 月 1 日から指定された日付までの日数。
備考
1 月 1 日は 1、12 月 31 日は 365 または 366 です。
例
static void dayOfYrExample(Args _arg)
{
date d = today();
int i;
;
i = dayOfYr(d);
print "Today's day of the year is " + int2Str(i);
pause;
}
endMth
指定した日付の月の最後の日付を計算します。
date endMth(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 年、月、日を示す日付値。 |
戻り値
指定した月の最後の日付の date 値。
備考
endMth(0221988); //Returns the date 2921988 because 1988 is a leap year.
endMth(0221989); //Returns the date 2821989.
mkDate
日、月、および年を示す 3 つの整数に基づいて日付を作成します。 "y" など、年の引数の "短縮形" 値はサポートされていません。
date mkDate(int day, int month, int year)
パラメーター
パラメーター | 説明 |
---|---|
曜日 | 月の日を表す整数。 |
月 | 年の月を表す整数。 |
年 | 1900 年から 2154 年の間で必要とする年を表す整数。 |
戻り値
日、月、および年のパラメーター値に基づく日付値。
備考
データが無効である場合は、このメソッドは 0 (zero, 1/1/1900) 日付を返します。 Dynamics AX 7.0 (2016 年 2 月) から、1975 年の 75 のような、その年のショートカット値はサポートされていません。 その年のショートカット値を指定すると、1900 年 1 月 1 日の日付が返されます。
例
static void mkDateExample(Args _arg)
{
date d;
;
// Returns the date 0112005.
d = mkDate(1, 1, 2005);
print d;
pause;
}
mthName
指定された月の名前を取得します
str monthName(int number)
パラメーター
パラメーター | 説明 |
---|---|
数値 | 月の番号。 |
戻り値
指定された月の名前。
備考
番号のパラメーターの有効値は 1 ~ 12 です。 1 月は 1 で、12 月は 12 で表されます。
例
static void mthNameExample(Args _arg)
{
str s;
;
// MthName(6) returns the text string "June".
s = mthName(6);
print "Month name is " + s;
pause;
}
mthOfYr
指定された日付の年内の月数を取得します。 注記: 1 月は 1、2 月は 2、12 月は 12 となります。
int mthOfYr(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 年月日を指定する日付です。 |
戻り値
日付 パラメーターで表される月の年の月の数字。
例
static void mthOfYrExample(Args _arg)
{
int i;
;
i = mthOfYr(today());
print "The number of the month in today's date is " + int2Str(i);
pause;
}
nextMth
指定した日付に最も近い、対応する次の月の日付を取得します。
date nextMth(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 翌月に一致する日付。 |
戻り値
翌月に指定された日付に最も近い一致。
備考
nextMth(2921996); //returns 29/03/1996.
nextMth(3111996); //returns 2921996, because 1996 is a leap year.
例
static void nextMthExample(Args _arg)
{
date d;
;
d = nextMth(today());
print "Closest date next month is "
+ date2Str(d, 2, 2, -1, 2, -1, 4);
pause;
}
nextQtr
指定した日付に最も近い、対応する次の四半期の日付を取得します。
date nextQtr(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 翌四半期に一致する日付。 |
戻り値
次の四半期に指定された日付に最も近い一致。
備考
たとえば、nextQtr(3111998) は 3041998 を返します。
例
static void nextQtrExample(Args _arg)
{
date d;
;
d = nextQtr(today());
print "Closest date next quarter is "
+ date2Str(d, 2, 2, -1, 2, -1, 4);
pause;
}
nextYr
指定した日付に最も近い、対応する次の年の日付を取得します。
date nextYr(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 翌年に一致する日付。 |
戻り値
翌年に指定された日付に最も近い一致。
備考
たとえば、nextyr(2921998) は 2821999 を返します。
例
static void nextYrExample(Args _arg)
{
date d;
;
d = nextYr(today());
print "Closest date next year is "
+ date2Str(d, 2, 2, -1, 2, -1, 4);
pause;
}
prevMth
指定した日付に最も近い、対応する前の月の日付を取得します。
date prevMth(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 前月に一致する日付。 |
戻り値
前月に指定された日付に最も近い一致。
備考
prevMth(3131996); //Returns the date 29/02/1996 because 1996 is a leap year.
prevMth(2821998); //Returns the date 28/01/1998.
prevQtr
指定した日付に最も近い、対応する前の四半期の日付を取得します。
date prevQtr(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 前四半期に一致する日付。 |
戻り値
前の四半期に指定された日付に最も近い一致。
備考
prevQtr(3041998); //Returns the date 30/01/1998.
prevQtr(2951996); //Returns the date 29/02/1996, because 1996 is a leap year.
prevYr
指定した日付に最も近い、対応する前の年の日付を取得します。
date prevYr(date date)
パラメーター
パラメーター | 説明 |
---|---|
日付 | 前年に一致する日付。 |
戻り値
前年に指定された日付に最も近い一致。
備考
prevYr(2921996); //Returns the date 28/02/1995 because 1996 is a leap year.
prevYr(2821998); //Returns the date 28/02/1997.
systemDateGet
設定されている場合は、セッションの日付を取得します。
date systemDateGet()
戻り値
セッションの日付が設定されている場合はそれを返します。それ以外の場合はシステムの日付を返します。
備考
セッション日時ページを開くには、ツールメニューのセッション日時を使用してください。 このページを使用して、セッションの日付を有効に設定できます。 システムによってこの設定されたアクションが検出されると、その後の systemDateGet 関数の呼び出しによってセッションの日付が返されます。 today 関数は、システム日付を返します。 この関数は、タイム ゾーンをサポートしていません。
例
次の例は、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 |
---|---|
_date | システムの新しい日付。 |
戻り値
新しいシステム日付。
備考
この関数は、セッションの日付には影響しません。 このメソッドは日付を変更しますが、時刻は 0 (ゼロ) に設定されます。
例
次の例では、システムの日付を今日の日付に設定します。
static void systemDateSetExample(Args _arg)
{
date d = today();
d = systemDateSet(d);
print d;
}
timeNow
現在のシステム時刻を取得します。
int timeNow()
戻り値
午前0時から経過した秒数。
例
static void timeNowExample(Args _arg)
{
int i;
;
i = timeNow();
print "The number of seconds since midnight is " + int2Str(i);
pause;
}
今日
システムの現在の日付を取得します。
date today()
戻り値
現在の日付。
例
static void todayExample(Args _arg)
{
date d;
;
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 | その年の週を計算する日付。 |
戻り値
_date パラメーターが発生する週のシーケンス番号。
例
次のコード例は、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
年
date 値から年を取得します。
int year(date _date)
パラメーター
パラメーター | Description |
---|---|
_date | 年を返す日付。 |
戻り値
指定した日付の年。
備考
year(0221998); //Returns the value 1998.