Geschäftliche Laufzeitfunktionen für X++

In diesem Artikel werden die Geschäftslaufzeitfunktionen beschrieben.

Diese Funktionen geben Finanzdaten ein und berechnen Formeln.

cTerm

Berechnet die Anzahl der Zeiträume, die für den aktuellen Anlagewert erforderlich sind, um einen Zielwert zu erzielen.

Syntax

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

Parameters

Parameter Description
interest Der Zinssatz pro Periode.
future_value Der Zielwert.
current_value Der aktuelle Investitionswert.

Return value

Die Anzahl der Zeiträume, die erforderlich sind, um future_value zu erreichen.

Remarks

Die Parameter current_value und future_value müssen dasselbe Zeichen (Plus- oder Minuszeichen) verwenden.

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

Berechnet die beschleunigte Abschreibung eines Vermögenswerts.

Syntax

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

Parameters

Parameter Description
price Der Kaufpreis des Vermögenswerts.
scrap Der Restwert der Ressource, die Sie abschreiben.
life Die erwartete Lebensdauer der Ressource.
period Der Zeitraum, über den die Abschreibung berechnet werden soll.

Return value

Die Abschreibung des Vermögenswerts.

Remarks

Der Buchwert für einen bestimmten Zeitraum entspricht dem Kaufpreis abzüglich der angesammelten Abschreibung für frühere Perioden:

  • Buchwert für Zeitraum 1 = Preis
  • Buchwert für Zeitraum 2 = Buchwert für Zeitraum 1 – Abschreibung für Zeitraum 1
  • Buchwert für Zeitraum n = Buchwert für Periode (n–1) – Abschreibung für Periode (n–1)

Es gibt drei Variationen für die Berechnung der Abschreibung: Wenn PeriodEnlebensdauer > :

  • Abschreibung = 0

If (Book value for Period n) – ((Book value for Period n) × 2 ÷ Life) < Restwert:

  • Abschreibung = (Buchwert für Zeitraum n) – Restwert

In allen anderen Fällen: Abschreibung = (Buchwert für Period n) × 2 ÷ Life The syd and sln functions also calculate the depreciation of an asset. Die Funktionen "syd " und "ddb " ermöglichen eine höhere Abschreibung für die früheren Jahre, während sln eine lineare Abschreibung berechnet.

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

dg

Berechnet das Beitragsverhältnis, das auf dem Verkaufspreis und dem Kaufpreis basiert. Wenn der Wert des Verkaufsparameters0,0 ist, kann die Berechnung nicht ausgeführt werden.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale Der Verkaufspreis.
purchase Der Kaufpreis.

Return value

Die Beitragsquote.

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

Berechnet den zukünftigen Wert einer Investition.

Syntax

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

Parameters

Parameter Description
amount Der Betrag, den Sie während jedes Zeitraums gezahlt haben.
interest Der Zinssatz pro Periode.
life Die Anzahl der Investitionsperioden.

Return value

Der zukünftige Wert der Investition.

Remarks

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

idg

Berechnet den Verkaufspreis basierend auf dem Kaufpreis und dem Beitragsverhältnis.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase Der Kaufpreis.
contribution_ratio Die Beitragsquote.

Return value

Der Verkaufspreis.

Remarks

Wenn das Beitragsverhältnis gleich 1,0 ist, kann die Berechnung nicht durchgeführt werden. Die Idg-Funktion ist die Umkehrung der Gd-Funktion .

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

intvMax

Ruft die Anzahl der Intervalle für den angegebenen Zeitraum ab, wenn der Punkt in Teile unterteilt wird, wie durch den Func-Parameter angegeben.

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

Parameters

Parameter Description
input_date Das Ende des Zeitraums, der später als der parameter ref_date sein muss.
ref_date Der Anfang des Zeitraums.
func Ein IntvScale-Systemaufzählungswert , der die Abteilungseinheit angibt.

Remarks

Hier sind die möglichen Werte für den Func-Parameter :

  • 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

Gibt den Namen des Intervalls zurück, das die angegebene Anzahl von Intervallen vor dem angegebenen Datum darstellt.

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

Parameters

Parameter Description
input_date Ein Datum im ersten Intervall.
col Die Anzahl der Intervalle vor dem Datum, das vom input_date-Parameter angegeben wird.
func Ein IntvScale-Enumerationswert .

Return value

Der Name des Intervalls.

Remarks

Wenn der Func-Parameter beispielsweise der Wert der IntvScale::WeekDay-Enumeration ist, gibt diese Methode den Namen des Wochentags zurück. Wenn der Func-Parameter der IntvScale::Week-Enumerationswert ist, gibt diese Methode eine Zeichenfolge zurück, die die Anzahl der Woche enthält.

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

Berechnet die Anzahl der Intervalle zwischen zwei Datumsangaben, wenn Sie die Zeit in die angegebenen Intervalle unterteilen.

Syntax

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

Parameters

Parameter Description
input_date Ein Datum, das das Ende des Zeitraums angibt
ref_date Ein Datum, das den Anfang des Zeitraums angibt.
func Ein IntvScale-Enumerationswert .

Return value

Die Anzahl der Intervalle zwischen den Datumsangaben, die die ref_date und input_date Parameter angeben.

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

Gibt das normalisierte Datum für den Zeitraum zurück.

Syntax

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

Parameters

Parameter Description
input_date Das Ende des Zeitraums, der später als das Datum sein muss, das Sie im parameter ref_date angeben.
ref_date Der Anfang des Zeitraums.
func Ein IntvScale-Enumerationswert , der die Intervallteilungseinheit angibt.

Return value

Das normalisierte Datum für den Zeitraum.

Remarks

Das zurückgegebene Datum entspricht dem Datum des ersten Tags im Intervall, in dem das datum, das Sie im parameter ref_date angeben, vorhanden ist.

Example

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

pmt

Berechnet den Betrag, den Sie für jeden Zeitraum bezahlen müssen, um ein Darlehen zurückzuzahlen.

Syntax

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

Parameters

Parameter Description
principal Der Betrag, den Sie ursprünglich geliehen haben.
interest Der Zinssatz wendete jeden Zeitraum auf den Betrag an, den Sie geliehen haben.
life Die Anzahl der Zeiträume, über die Sie den Kredit zurückzahlen.

Return value

Der Betrag, den Sie für jeden Zeitraum bezahlen müssen.

Remarks

Ausdrücken Sie die Lebens - und Interessenparameter in den gleichen Zeiteinheiten. Der Wert des Lebensparameters muss größer als 0,0 sein.

Example

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

pt

Ruft die Summe einer Zahl plus einem angegebenen Prozentsatz dieser Zahl ab.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Die ursprüngliche Nummer.
percentage Die Prozentuale Ergänzung.

Return value

Die Zahl, die gleich ((Betrag ×Percentage) + Betrag ist).

Remarks

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

pv

Berechnet den Barwert einer Annuität, bei der Sie einen Betrag über mehrere Zeiträume erhalten und der Zinssatz für jeden Zeitraum abgezogen wird.

Syntax

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

Parameters

Parameter Description
amount Der Betrag, den Sie während jedes Zeitraums bezahlen.
interest Der Zinssatz pro Periode.
life Gibt an, wie oft der durch den Betragsparameter angegebene Wert bezahlt wird.

Return value

Der aktuelle Wert einer Annuität.

Remarks

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

rate

Berechnet die Zinsen, die für den aktuellen Anlagewert erforderlich sind, um den zukünftigen Wert über die angegebene Anzahl von Zeiträumen zu erreichen.

Syntax

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

Parameters

Parameter Description
_future_value Der zukünftige Wert der Investition.
_current_value Der aktuelle Wert der Investition.
_terms Die Anzahl der Perioden, über die sich die Investition erstreckt.

Return value

Der berechnete Zinssatz.

Remarks

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

sln

Ruft den konstanten Abschreibungsbetrag für die angegebene Ressource für jeden Abschreibungszeitraum ab.

Syntax

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

Parameters

Parameter Description
price Der Kaufpreis des Vermögenswerts.
scrap Der Schrottwert des Vermögenswerts.
life Die Anzahl der Perioden in der erwarteten Lebensdauer des Vermögenswerts.

Return value

Der Abschreibungsbetrag.

Example

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

syd

Berechnet die Abschreibung eines Vermögenswerts über einen bestimmten Zeitraum.

Syntax

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

Parameters

Parameter Description
_price Der Kaufpreis des Vermögenswerts.
_scrap Der Schrottwert des Vermögenswerts.
_life Die erwartete Lebensdauer des Vermögenswerts (die Anzahl der Perioden).
_period Der Zeitraum, für den die Abschreibung berechnet werden soll.

Return value

Der Betrag der Abschreibung über den angegebenen Zeitraum.

Remarks

Im Gegensatz zur Sln-Funktion kann die syd-Funktion eine beschleunigte Abschreibung für den Vermögenswert verwenden. Wie bei der ddb-Funktion führt dieser Ansatz während der frühen Lebenszeit eines Vermögenswerts zu einer höheren Abschreibung.

Example

In den folgenden Beispielen wird die periodische Abschreibung für ein Objekt mit einem Kaufpreis von 10.000, einem Schrottwert von 2.000 und einer Lebensdauer von 5 berechnet. Im Vergleich berechnet sln(10000.2000,5) für jeden Zeitraum 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

Berechnet die Anzahl der Perioden, für die eine Investition ausgeführt werden muss.

Syntax

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

Parameters

Parameter Description
amount Der Betrag der periodischen Investition.
interest Der Zinssatz für jeden Zeitraum.
future_value Der zukünftige Wert, der für die Investition erwartet wird

Return value

Die Anzahl der Perioden, für die die Investition ausgeführt werden muss.

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;
}