ฟังก์ชันเวลาที่รันธุรกิจของ X++

บทความนี้อธิบายฟังก์ชันรันไทม์ธุรกิจ

ฟังก์ชันเหล่านี้ป้อนข้อมูลทางการเงินและคํานวณสูตร

cTerm

คํานวณจํานวนรอบระยะเวลาที่จําเป็นสําหรับค่าการลงทุนปัจจุบันเพื่อให้ได้ค่าเป้าหมาย

Syntax

real cTerm(real interest, real future_value, real current_value)

Parameters

Parameter Description
interest อัตราดอกเบี้ย
future_value ค่าเป้าหมาย
current_value มูลค่าการลงทุนปัจจุบัน

Return value

จํานวนระยะเวลาที่จําเป็นในการเข้าถึง future_value

Remarks

พารามิเตอร์ current_value และ future_value ต้องใช้เครื่องหมายเดียวกัน (เครื่องหมายบวกหรือลบ)

Example

static void cTermExample(Args _arg)
{
    real r;
    ;
    r = cTerm(10.0, 500.00, 100.00);
    print "The cTerm is " + num2Str(r, 2, 2, 1, 1);
    pause;
}

ddb

คํานวณค่าเสื่อมราคาแบบเร่งของสินทรัพย์

Syntax

real ddb(real price, real scrap, real life, int period)

Parameters

Parameter Description
price ราคาซื้อของสินทรัพย์
scrap มูลค่าที่เหลืออยู่ของสินทรัพย์ที่คุณตัดจ่าย
life อายุการใช้งานที่คาดหวังของสินทรัพย์
period รอบระยะเวลาที่จะคํานวณค่าเสื่อมราคา

Return value

ค่าเสื่อมราคาของสินทรัพย์

Remarks

มูลค่าตามบัญชีสําหรับรอบระยะเวลาเฉพาะจะเท่ากับราคาซื้อลบด้วยค่าเสื่อมราคาสะสมสําหรับรอบระยะเวลาก่อนหน้านี้

  • มูลค่าตามบัญชีสําหรับรอบระยะเวลา 1 = ราคา
  • มูลค่าตามบัญชีสําหรับรอบระยะเวลา 2 = มูลค่าตามบัญชีสําหรับรอบระยะเวลา 1 – ค่าเสื่อมราคาสําหรับรอบระยะเวลา 1
  • มูลค่าตามบัญชีสําหรับรอบระยะเวลา n = มูลค่าตามบัญชีสําหรับรอบระยะเวลา (n-1) – ค่าเสื่อมราคาสําหรับรอบระยะเวลา (n–1)

มีการเปลี่ยนแปลงสามรายการสําหรับการคํานวณค่าเสื่อมราคา: ถ้าอายุการใช้งานของรอบระยะเวลา > :

  • ค่าเสื่อมราคา = 0

ถ้า (มูลค่าตามบัญชีสําหรับรอบระยะเวลา n) – ((มูลค่าตามบัญชีสําหรับรอบระยะเวลา n) × 2 ÷อายุการใช้งาน) < มูลค่าปัจจุบัน:

  • ค่าเสื่อมราคา = (มูลค่าตามบัญชีสําหรับรอบระยะเวลา n) – มูลค่าที่เหลือ

ในกรณีอื่น ๆ ทั้งหมด: ค่าเสื่อมราคา = (มูลค่าตามบัญชีสําหรับรอบระยะเวลา n) × 2 ÷อายุฟังก์ชัน syd และ sln ยังคํานวณค่าเสื่อมราคาของสินทรัพย์ด้วย ฟังก์ชัน syd และ ddb ช่วยให้ค่าเสื่อมราคาสูงขึ้นสําหรับปีก่อนหน้า ในขณะที่ sln คํานวณค่าเสื่อมราคาแบบเส้นตรง

ddb(12000,2000,10,1); //Returns the value 2400.
ddb(12000,2000,10,3); //Returns the value 1536.

dg

คํานวณอัตราส่วนกําไรส่วนแบ่งซึ่งขึ้นอยู่กับราคาขายและราคาซื้อ ถ้าค่าของพารามิเตอร์ การขาย เป็น 0.0 การคํานวณจะไม่สามารถทําได้

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale ราคาขาย
purchase ราคาซื้อ

Return value

อัตราส่วนของส่วนสนับสนุน

Remarks

dg(1000,300); //Returns the value 0.7.
dg(100,30); //Returns the value 0.7.
dg(20000, 11000); //Returns the value 0.45.

fV

คํานวณมูลค่าในอนาคตของการลงทุน

Syntax

real fV(real amount, real interest, real life)

Parameters

Parameter Description
amount ยอดเงินที่คุณชําระในระหว่างแต่ละรอบระยะเวลา
interest อัตราดอกเบี้ย
life จํานวนของรอบระยะเวลาการลงทุน

Return value

มูลค่าในอนาคตของการลงทุน

Remarks

fV(100,0.14,10); //Returns the value 1933.73.
fV(400,0.10,5); //Returns the value 2442.04.

idg

คํานวณราคาขายตามราคาซื้อและอัตราส่วนส่วนสนับสนุน

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase ราคาซื้อ
contribution_ratio อัตราส่วนของส่วนสนับสนุน

Return value

ราคาขาย

Remarks

ถ้าอัตราส่วนกําไรส่วนสนับสนุนเท่ากับ 1.0 จะไม่สามารถคํานวณได้ ฟังก์ชัน idg เป็นค่าผกผันของฟังก์ชัน dg

idg(300,0.7); //Returns the value 1000.
idg(11000,0.45); //Returns the value 20000.

intvMax

ดึงข้อมูลจํานวนช่วงสําหรับรอบระยะเวลาที่ระบุเมื่อรอบระยะเวลาถูกแบ่งออกเป็นส่วนต่างๆ ตามที่ระบุโดยพารามิเตอร์ func

int intvMax(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date จุดสิ้นสุดของรอบระยะเวลาซึ่งต้องอยู่หลังพารามิเตอร์ ref_date
ref_date จุดเริ่มต้นของรอบระยะเวลา
func ค่าแจงนับระบบ IntvScale ที่ระบุหน่วยการหาร

Remarks

ต่อไปนี้คือค่าที่เป็นไปได้สําหรับพารามิเตอร์ func :

  • None
  • YearMonthDay
  • YearMonth
  • Year
  • MonthDay
  • Month
  • Day
  • YearQuarter
  • Quarter
  • YearWeek
  • Week
  • WeekDay

Example

static void intvMaxExample()
{
    date refDate = str2Date("4/9/2007", 213);
    date inputDate = str2Date("10/5/2007", 213);
    int numberOfIntervals;
    ;
    numberOfIntervals = intvMax(inputDate, refDate, intvScale::YearMonth);
    print numberOfIntervals;
    pause;
}

intvName

ส่งกลับชื่อของช่วงที่เป็นจํานวนช่วงที่ระบุ ก่อนวันที่ที่ระบุ

str intvName(date input_date, int col, enum func)

Parameters

Parameter Description
input_date วันที่ในช่วงเวลาแรก
col จํานวนช่วงเวลาก่อนวันที่ที่ระบุโดยพารามิเตอร์ input_date
func ค่าการแจงนับ intvScale

Return value

ชื่อของช่วง

Remarks

ตัวอย่างเช่น ถ้าพารามิเตอร์ของ func เป็น IntvScale::WeekDay แจงนับ วิธีการนี้จะส่งกลับชื่อของวันในสัปดาห์ หากพารามิเตอร์ func เป็น IntvScale:: ค่าการแจงนับสัปดาห์ วิธีนี้จะส่งกลับสตริงที่มีจํานวนสัปดาห์

Example

static void intvNameExample(Args _args)
{
    date refDate = 2672010;
    str name;
    ;
    name = intvName(refDate, 3,  intvScale::WeekDay);
    Global::info(strfmt("%1 is the output, which indicates the day of the week 3 days after 26\7\2010.", name));
}
/**** Infolog display.
Message (09:56:55 am)
Thu is the output, which indicates the day of the week 3 days after 2672010.
****/

intvNo

คํานวณจํานวนช่วงเวลาระหว่างวันที่สองวันเมื่อคุณแบ่งเวลาเป็นช่วงเวลาที่ระบุ

Syntax

int intvNo(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date วันที่ที่ระบุจุดสิ้นสุดของรอบระยะเวลา
ref_date วันที่ที่ระบุจุดเริ่มต้นของรอบระยะเวลา
func ค่าการแจงนับ intvScale

Return value

จํานวนช่วงเวลาระหว่างวันที่ที่พารามิเตอร์ ref_date และ input_date ระบุ

Example

static void intvNoExample(Args _args)
{
    date inputDate = str2Date("1/1/2007", 213);
    date refDate = str2Date("3/1/2007", 213);
    int noOfIntervals;
    ;
    noOfIntervals = intvNo(refDate, inputDate, intvScale::Month);
    print noOfIntervals;
    pause;
    //noOfIntervals now holds the difference in months between March and January (2).
}

intvNorm

ส่งกลับวันที่ปกติสําหรับรอบระยะเวลา

Syntax

date intvNorm(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date จุดสิ้นสุดของรอบระยะเวลาซึ่งต้องอยู่หลังจากวันที่ที่คุณระบุในพารามิเตอร์ ref_date
ref_date จุดเริ่มต้นของรอบระยะเวลา
func ค่าแจงนับแบบ intvScale ที่ระบุหน่วยการหารช่วงเวลา

Return value

วันที่ปกติสําหรับรอบระยะเวลา

Remarks

วันที่ผลลัพธ์จะเท่ากับวันที่ของวันแรกในช่วงเวลาที่คุณระบุวันที่ที่คุณระบุในพารามิเตอร์ ref_date อยู่

Example

static void example()
{
    print intvNorm(today(), today()-1, IntVScale::WeekDay);
    pause;
}

pmt

คํานวณยอดเงินที่คุณต้องชําระทุกรอบระยะเวลาเพื่อชําระคืนเงินกู้ยืม

Syntax

real pmt(real principal, real interest, real life)

Parameters

Parameter Description
บัญชีผู้ใช้หลัก จํานวนเงินที่คุณยืมในตอนแรก
interest อัตราดอกเบี้ยที่ใช้ในแต่ละรอบระยะเวลากับจํานวนที่คุณยืม
life จํานวนของรอบระยะเวลาที่คุณชําระคืนเงินกู้ยืม

Return value

ยอดเงินที่คุณต้องชําระทุกรอบระยะเวลา

Remarks

แสดงพารามิเตอร์ อายุ และ ดอกเบี้ย ในหน่วยเวลาเดียวกัน ค่าของพารามิเตอร์อายุต้องมากกว่า 0.0

Example

pmt(4000,0.14,4); //Returns the value 1372.82.
pmt(10000,0.10,20); //Returns the value 1174.60.

pt

ดึงข้อมูลผลรวมของตัวเลขบวกเปอร์เซ็นต์ที่ระบุของตัวเลขนั้น

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount หมายเลขเดิม
percentage เปอร์เซ็นต์อาหารเสริม

Return value

ตัวเลขที่เท่ากับ ((amount ×percentage) + amount)

Remarks

pt(2000.0,0.10); //Returns the value 2200.0.
pt(20.0,0.10); //Returns the value 22.0.

pv

คํานวณค่าปัจจุบันของเงินรายปี ที่คุณได้รับยอดเงินในหลายรอบระยะเวลา และหักอัตราดอกเบี้ยสําหรับแต่ละรอบระยะเวลา

Syntax

real pv(real amount, real interest, real life)

Parameters

Parameter Description
amount ยอดเงินที่คุณชําระในระหว่างแต่ละรอบระยะเวลา
interest อัตราดอกเบี้ย
life จํานวนครั้งที่ชําระค่าที่ระบุโดยพารามิเตอร์ยอดเงิน

Return value

ค่าปัจจุบันของเงินรายปี

Remarks

pv(300,0.14,4); //Returns the value 874.11.

rate

คํานวณดอกเบี้ยที่จําเป็นสําหรับค่าการลงทุนปัจจุบัน เพื่อสร้างมูลค่าในอนาคตตามจํานวนรอบระยะเวลาที่ระบุ

Syntax

real rate(real _future_value, real _current_value, real _terms)

Parameters

Parameter Description
_future_value มูลค่าในอนาคตของการลงทุน
_current_value ค่าปัจจุบันของการลงทุน
_terms จํานวนของรอบระยะเวลาที่การลงทุนขยาย

Return value

อัตราดอกเบี้ยที่คํานวณได้

Remarks

rate(10000,1000,20); //Returns the value 0.12.

sln

ดึงข้อมูลยอดเงินค่าเสื่อมราคาคงที่สําหรับสินทรัพย์ที่ระบุสําหรับแต่ละรอบระยะเวลาค่าเสื่อมราคา

Syntax

real sln(real price, real scrap, real life)

Parameters

Parameter Description
price ราคาซื้อของสินทรัพย์
scrap มูลค่าซากของสินทรัพย์
life จํานวนของรอบระยะเวลาอายุที่คาดไว้ของสินทรัพย์

Return value

ยอดเงินค่าเสื่อมราคา

Example

static void slnExample(Args _arg)
{
    real r;
    ;
    r = sln(100.00, 50.00, 50.00);
    print r;
    pause;
}

syd

คํานวณค่าเสื่อมราคาของสินทรัพย์ในช่วงเวลาที่ระบุ

Syntax

real syd(real _price, real _scrap, real _life, int _period)

Parameters

Parameter Description
_price ราคาซื้อของสินทรัพย์
_scrap มูลค่าซากของสินทรัพย์
_life อายุที่คาดหวังของสินทรัพย์ (จํานวนของรอบระยะเวลา)
_period รอบระยะเวลาที่จะคํานวณค่าเสื่อมราคา

Return value

ยอดเงินค่าเสื่อมราคาในช่วงเวลาที่ระบุ

Remarks

ฟังก์ชัน syd สามารถใช้ค่าเสื่อมราคาแบบเร่งสําหรับสินทรัพย์ ซึ่งตรงกันข้ามกับฟังก์ชัน sln เช่นเดียวกับฟังก์ชัน ddb วิธีการนี้จะส่งผลให้ค่าเสื่อมราคาสูงขึ้นในช่วงต้นรอบระยะเวลาของสินทรัพย์

Example

ในตัวอย่างต่อไปนี้ จะมีการคํานวณค่าเสื่อมราคาเป็นครั้งคราวสําหรับสินทรัพย์ที่มีราคาซื้อ 10,000 มูลค่าซาก 2,000 และอายุ 5 ในการเปรียบเทียบ sln(10000,2000,5) จะคํานวณ 1,600.00 สําหรับแต่ละรอบระยะเวลา

// Returns the value 2666.67 (for the 1st period).
syd(10000,2000,5,1);
// Returns the value 2133.33 (for the 2nd period).
syd(10000,2000,5,2);
// Returns the value 1600.00 (for the 3rd period).
syd(10000,2000,5,3);
// Returns the value 1066.67 (for the 4th period).
syd(10000,2000,5,4);
// Returns the value 533.33 (for 5th - and final- period).
syd(10000,2000,5,5);

term

คํานวณจํานวนรอบระยะเวลาที่การลงทุนต้องรัน

Syntax

real term(real amount, real interest, real future_value)

Parameters

Parameter Description
amount ยอดเงินของการลงทุนเป็นครั้งคราว
interest อัตราดอกเบี้ยสําหรับแต่ละรอบระยะเวลา
future_value มูลค่าในอนาคตที่คาดว่าจะได้รับสําหรับการลงทุน

Return value

จํานวนของรอบระยะเวลาที่การลงทุนต้องดําเนินการ

Example

static void termExample(Args _args)
{
    print term(400,0.08,5000);  //returns the value '9.01'.
    print term(100,0.14,3000);  //returns the value '12.58'.
    pause;
}