Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Match everything enclosed
    (?:...)
  • Capture everything enclosed
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
g

Test String

Substitution

Processing...

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "<!--\\s*([\\s\\S]*?)\\s*-->"; final String string = "<PAP name=\"Lohnsteuer2016Big\" version=\"1.0\"> \n" + " <VARIABLES> \n" + " <!-- Stand: 2015-11-06 -->\n" + " <!-- ZIVIT Düsseldorf--> \n\n" + " <!-- EINGABEPARAMETER -->\n" + " <INPUTS>\n" + " <!-- 1, wenn die Anwendung des Faktorverfahrens gewählt wurden (nur in Steuerklasse IV) -->\n" + " <INPUT name=\"af\" type=\"int\" default=\"1\"/>\n" + " \n" + " <!-- Auf die Vollendung des 64. Lebensjahres folgende\n" + " Kalenderjahr (erforderlich, wenn ALTER1=1) -->\n" + " <INPUT name=\"AJAHR\" type=\"int\"/>\n" + " \n" + " <!-- 1, wenn das 64. Lebensjahr zu Beginn des Kalenderjahres vollendet wurde, in dem\n" + " der Lohnzahlungszeitraum endet (§ 24 a EStG), sonst = 0 -->\n" + " <INPUT name=\"ALTER1\" type=\"int\"/>\n" + " \n" + " <!-- in VKAPA und VMT enthaltene Entschädigungen nach §24 Nummer 1 EStG in Cent -->\n" + " <INPUT name=\"ENTSCH\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- eingetragener Faktor mit drei Nachkommastellen -->\n" + " <INPUT name=\"f\" type=\"double\" default=\"1.0\"/>\n" + " \n" + " <!-- Jahresfreibetrag nach Maßgabe der Eintragungen auf der\n" + " Lohnsteuerkarte in Cents (ggf. 0) -->\n" + " <INPUT name=\"JFREIB\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Jahreshinzurechnungsbetrag in Cents (ggf. 0) -->\n" + " <INPUT name=\"JHINZU\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Voraussichtlicher Jahresarbeitslohn ohne sonstige Bezüge und ohne Vergütung für mehrjährige Tätigkeit in Cent. \n" + " Anmerkung: Die Eingabe dieses Feldes (ggf. 0) ist erforderlich bei Eingabe „sonsti-ger Bezüge“ (Feld SONSTB) \n" + " oder bei Eingabe der „Vergütung für mehrjährige Tätigkeit“ (Feld VMT).\n" + " Sind in einem vorangegangenen Abrechnungszeitraum bereits sonstige Bezüge gezahlt worden, so sind sie dem \n" + " voraussichtlichen Jahresarbeitslohn hinzuzurechnen. Vergütungen für mehrere Jahres aus einem vorangegangenen \n" + " Abrechnungszeitraum sind in voller Höhe hinzuzurechnen. --> \n" + " <INPUT name=\"JRE4\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- In JRE4 enthaltene Versorgungsbezuege in Cents (ggf. 0) -->\n" + " <INPUT name=\"JVBEZ\" type=\"BigDecimal\"/>\n" + " \n" + " <!--Merker für die Vorsorgepauschale\n" + " 2 = der Arbeitnehmer ist NICHT in der gesetzlichen Rentenversicherung versichert.\n" + " \n" + " 1 = der Arbeitnehmer ist in der gesetzlichen Rentenversicherung versichert, es gilt die \n" + " Beitragsbemessungsgrenze OST.\n" + " \n" + " 0 = der Arbeitnehmer ist in der gesetzlichen Rentenversicherung versichert, es gilt die \n" + " Beitragsbemessungsgrenze WEST. -->\n" + " <INPUT name=\"KRV\" type=\"int\"/>\n" + " \n" + " <!-- Einkommensbezogener Zusatzbeitragssatz eines gesetzlich krankenversicherten Arbeitnehmers, \n" + " auf dessen Basis der an die Krankenkasse zu zahlende Zusatzbeitrag berechnet wird,\n" + " in Prozent (bspw. 0,90 für 0,90 %) mit 2 Dezimalstellen. \n" + " Der von der Kranken-kasse festgesetzte Zusatzbeitragssatz ist bei Abweichungen unmaßgeblich. -->\n" + " <INPUT name=\"KVZ\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Lohnzahlungszeitraum:\n" + " 1 = Jahr\n" + " 2 = Monat\n" + " 3 = Woche\n" + " 4 = Tag -->\n" + " <INPUT name=\"LZZ\" type=\"int\"/>\n" + " \n" + " <!-- In der Lohnsteuerkarte des Arbeitnehmers eingetragener Freibetrag für\n" + " den Lohnzahlungszeitraum in Cent -->\n" + " <INPUT name=\"LZZFREIB\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- In der Lohnsteuerkarte des Arbeitnehmers eingetragener Hinzurechnungsbetrag\n" + " für den Lohnzahlungszeitraum in Cent -->\n" + " <INPUT name=\"LZZHINZU\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Dem Arbeitgeber mitgeteilte Zahlungen des Arbeitnehmers zur privaten\n" + " Kranken- bzw. Pflegeversicherung im Sinne des §10 Abs. 1 Nr. 3 EStG 2010\n" + " als Monatsbetrag in Cent (der Wert ist inabhängig vom Lohnzahlungszeitraum immer \n" + " als Monatsbetrag anzugeben).-->\n" + " <INPUT name=\"PKPV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Krankenversicherung:\n" + " 0 = gesetzlich krankenversicherte Arbeitnehmer\n" + " 1 = ausschließlich privat krankenversicherte Arbeitnehmer OHNE Arbeitgeberzuschuss\n" + " 2 = ausschließlich privat krankenversicherte Arbeitnehmer MIT Arbeitgeberzuschuss -->\n" + " <INPUT name=\"PKV\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- 1, wenn bei der sozialen Pflegeversicherung die Besonderheiten in Sachsen zu berücksichtigen sind bzw. \n" + " zu berücksichtigen wären, sonst 0. -->\n" + " <INPUT name=\"PVS\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- 1, wenn er der Arbeitnehmer den Zuschlag zur sozialen Pflegeversicherung \n" + " zu zahlen hat, sonst 0. -->\n" + " <INPUT name=\"PVZ\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- Religionsgemeinschaft des Arbeitnehmers lt. Lohnsteuerkarte (bei\n" + " keiner Religionszugehoerigkeit = 0) -->\n" + " <INPUT name=\"R\" type=\"int\"/>\n" + " \n" + " <!-- Steuerpflichtiger Arbeitslohn vor Beruecksichtigung der Freibetraege\n" + " fuer Versorgungsbezuege, des Altersentlastungsbetrags und des auf\n" + " der Lohnsteuerkarte fuer den Lohnzahlungszeitraum eingetragenen\n" + " Freibetrags in Cents. -->\n" + " <INPUT name=\"RE4\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Sonstige Bezuege (ohne Verguetung aus mehrjaehriger Taetigkeit) einschliesslich\n" + " Sterbegeld bei Versorgungsbezuegen sowie Kapitalauszahlungen/Abfindungen,\n" + " soweit es sich nicht um Bezuege fuer mehrere Jahre handelt in Cents (ggf. 0) -->\n" + " <INPUT name=\"SONSTB\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Sterbegeld bei Versorgungsbezuegen sowie Kapitalauszahlungen/Abfindungen,\n" + " soweit es sich nicht um Bezuege fuer mehrere Jahre handelt\n" + " (in SONSTB enthalten) in Cents -->\n" + " <INPUT name=\"STERBE\" type=\"BigDecimal\" regex_test=\"\" regex_transform=\"\"/>\n" + " \n" + " <!-- Steuerklasse:\n" + " 1 = I\n" + " 2 = II\n" + " 3 = III\n" + " 4 = IV\n" + " 5 = V\n" + " 6 = VI -->\n" + " <INPUT name=\"STKL\" type=\"int\"/>\n" + " \n" + " <!-- In RE4 enthaltene Versorgungsbezuege in Cents (ggf. 0) -->\n" + " <INPUT name=\"VBEZ\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Vorsorgungsbezug im Januar 2005 bzw. fuer den ersten vollen Monat\n" + " in Cents-->\n" + " <INPUT name=\"VBEZM\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Voraussichtliche Sonderzahlungen im Kalenderjahr des Versorgungsbeginns\n" + " bei Versorgungsempfaengern ohne Sterbegeld, Kapitalauszahlungen/Abfindungen\n" + " bei Versorgungsbezuegen in Cents-->\n" + " <INPUT name=\"VBEZS\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- In SONSTB enthaltene Versorgungsbezuege einschliesslich Sterbegeld\n" + " in Cents (ggf. 0) -->\n" + " <INPUT name=\"VBS\" type=\"BigDecimal\"/>\n" + " \n" + " <!-- Jahr, in dem der Versorgungsbezug erstmalig gewaehrt wurde; werden\n" + " mehrere Versorgungsbezuege gezahlt, so gilt der aelteste erstmalige Bezug -->\n" + " <INPUT name=\"VJAHR\" type=\"int\" regex_test=\"\" regex_transform=\"\"/>\n" + " \n" + " <!-- Kapitalauszahlungen / Abfindungen / Nachzahlungen bei Versorgungsbezügen \n" + " für mehrere Jahre in Cent (ggf. 0) --> \n" + " <INPUT name=\"VKAPA\" type=\"BigDecimal\" regex_test=\"\" regex_transform=\"\"/>\n" + " \n" + " <!-- Vergütung für mehrjährige Tätigkeit ohne Kapitalauszahlungen und ohne Abfindungen \n" + " bei Versorgungsbezügen in Cent (ggf. 0) -->\n" + " <INPUT name=\"VMT\" type=\"BigDecimal\" regex_test=\"\" regex_transform=\"\"/>\n" + " \n" + " <!-- Zahl der Freibetraege fuer Kinder (eine Dezimalstelle, nur bei Steuerklassen\n" + " I, II, III und IV) -->\n" + " <INPUT name=\"ZKF\" type=\"BigDecimal\" regex_test=\"\" regex_transform=\"\"/>\n" + " \n" + " <!-- Zahl der Monate, fuer die Versorgungsbezuege gezahlt werden (nur\n" + " erforderlich bei Jahresberechnung (LZZ = 1) -->\n" + " <INPUT name=\"ZMVB\" type=\"int\" regex_test=\"\" regex_transform=\"\"/>\n" + " \n" + " <!-- In JRE4 enthaltene Entschädigungen nach § 24 Nummer 1 EStG in Cent -->\n" + " <INPUT name=\"JRE4ENT\" type=\"BigDecimal\" default=\"BigDecimal.ZERO\"/>\n" + " \n" + " <!-- In SONSTB enthaltene Entschädigungen nach § 24 Nummer 1 EStG in Cent -->\n" + " <INPUT name=\"SONSTENT\" type=\"BigDecimal\" default=\"BigDecimal.ZERO\"/>\n" + " </INPUTS>\n\n" + " <!-- AUSGABEPARAMETER -->\n" + " <OUTPUTS type=\"STANDARD\">\n" + " <!-- Bemessungsgrundlage fuer die Kirchenlohnsteuer in Cents -->\n" + " <OUTPUT name=\"BK\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Bemessungsgrundlage der sonstigen Einkuenfte (ohne Verguetung\n" + " fuer mehrjaehrige Taetigkeit) fuer die Kirchenlohnsteuer in Cents -->\n" + " <OUTPUT name=\"BKS\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <OUTPUT name=\"BKV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Fuer den Lohnzahlungszeitraum einzubehaltende Lohnsteuer in Cents -->\n" + " <OUTPUT name=\"LSTLZZ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Fuer den Lohnzahlungszeitraum einzubehaltender Solidaritaetszuschlag\n" + " in Cents -->\n" + " <OUTPUT name=\"SOLZLZZ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Solidaritaetszuschlag fuer sonstige Bezuege (ohne Verguetung fuer mehrjaehrige\n" + " Taetigkeit) in Cents -->\n" + " <OUTPUT name=\"SOLZS\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Solidaritaetszuschlag fuer die Verguetung fuer mehrjaehrige Taetigkeit in\n" + " Cents -->\n" + " <OUTPUT name=\"SOLZV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Lohnsteuer fuer sonstige Einkuenfte (ohne Verguetung fuer mehrjaehrige\n" + " Taetigkeit) in Cents -->\n" + " <OUTPUT name=\"STS\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Lohnsteuer fuer Verguetung fuer mehrjaehrige Taetigkeit in Cents -->\n" + " <OUTPUT name=\"STV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Für den Lohnzahlungszeitraum berücksichtigte Beiträge des Arbeitnehmers zur\n" + " privaten Basis-Krankenversicherung und privaten Pflege-Pflichtversicherung (ggf. auch\n" + " die Mindestvorsorgepauschale) in Cent beim laufenden Arbeitslohn. Für Zwecke der Lohn-\n" + " steuerbescheinigung sind die einzelnen Ausgabewerte außerhalb des eigentlichen Lohn-\n" + " steuerbescheinigungsprogramms zu addieren; hinzuzurechnen sind auch die Ausgabewerte\n" + " VKVSONST -->\n" + " <OUTPUT name=\"VKVLZZ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Für den Lohnzahlungszeitraum berücksichtigte Beiträge des Arbeitnehmers \n" + " zur privaten Basis-Krankenversicherung und privaten Pflege-Pflichtversicherung (ggf. \n" + " auch die Mindestvorsorgepauschale) in Cent bei sonstigen Bezügen. Der Ausgabewert kann\n" + " auch negativ sein. Für tarifermäßigt zu besteuernde Vergütungen für mehrjährige \n" + " Tätigkeiten enthält der PAP keinen entsprechenden Ausgabewert. -->\n" + " <OUTPUT name=\"VKVSONST\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " </OUTPUTS>\n" + " \n" + " <!-- AUSGABEPARAMETER DBA -->\n" + " <OUTPUTS type=\"DBA\">\n" + " \n" + " <!-- Verbrauchter Freibetrag bei Berechnung des laufenden Arbeitslohns, in Cent -->\n" + " <OUTPUT name=\"VFRB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Verbrauchter Freibetrag bei Berechnung des voraussichtlichen Jahresarbeitslohns, in Cent -->\n" + " <OUTPUT name=\"VFRBS1\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Verbrauchter Freibetrag bei Berechnung der sonstigen Bezüge, in Cent -->\n" + " <OUTPUT name=\"VFRBS2\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Für die weitergehende Berücksichtigung des Steuerfreibetrags nach dem DBA Türkei verfügbares ZVE über \n" + " dem Grundfreibetrag bei der Berechnung des laufenden Arbeitslohns, in Cent -->\n" + " <OUTPUT name=\"WVFRB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Für die weitergehende Berücksichtigung des Steuerfreibetrags nach dem DBA Türkei verfügbares ZVE über dem Grundfreibetrag \n" + " bei der Berechnung des voraussichtlichen Jahresarbeitslohns, in Cent -->\n" + " <OUTPUT name=\"WVFRBO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Für die weitergehende Berücksichtigung des Steuerfreibetrags nach dem DBA Türkei verfügbares ZVE \n" + " über dem Grundfreibetrag bei der Berechnung der sonstigen Bezüge, in Cent -->\n" + " <OUTPUT name=\"WVFRBM\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " </OUTPUTS>\n\n" + " <!-- INTERNE FELDER -->\n" + " <INTERNALS>\n" + " <!-- Altersentlastungsbetrag nach Alterseinkünftegesetz in €,\n" + " Cent (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ALTE\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Arbeitnehmer-Pauschbetrag in EURO -->\n" + " <INTERNAL name=\"ANP\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf den Lohnzahlungszeitraum entfallender Anteil von Jahreswerten\n" + " auf ganze Cents abgerundet -->\n" + " <INTERNAL name=\"ANTEIL1\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Bemessungsgrundlage für Altersentlastungsbetrag in €, Cent\n" + " (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"BMG\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Beitragsbemessungsgrenze in der gesetzlichen Krankenversicherung \n" + " und der sozialen Pflegeversicherung in Euro -->\n" + " <INTERNAL name=\"BBGKVPV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- allgemeine Beitragsbemessungsgrenze in der allgemeinen Renten-versicherung in Euro -->\n" + " <INTERNAL name=\"BBGRV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Differenz zwischen ST1 und ST2 in EURO -->\n" + " <INTERNAL name=\"DIFF\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Entlastungsbetrag fuer Alleinerziehende in EURO -->\n" + " <INTERNAL name=\"EFA\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Versorgungsfreibetrag in €, Cent (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"FVB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Versorgungsfreibetrag in €, Cent (2 Dezimalstellen) für die Berechnung\n" + " der Lohnsteuer für den sonstigen Bezug -->\n" + " <INTERNAL name=\"FVBSO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zuschlag zum Versorgungsfreibetrag in EURO -->\n" + " <INTERNAL name=\"FVBZ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zuschlag zum Versorgungsfreibetrag in EURO fuer die Berechnung\n" + " der Lohnsteuer beim sonstigen Bezug -->\n" + " <INTERNAL name=\"FVBZSO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Grundfreibetrag in Euro -->\n" + " <INTERNAL name=\"GFB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Maximaler Altersentlastungsbetrag in € -->\n" + " <INTERNAL name=\"HBALTE\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Massgeblicher maximaler Versorgungsfreibetrag in € -->\n" + " <INTERNAL name=\"HFVB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Massgeblicher maximaler Zuschlag zum Versorgungsfreibetrag in €,Cent\n" + " (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"HFVBZ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Massgeblicher maximaler Zuschlag zum Versorgungsfreibetrag in €, Cent\n" + " (2 Dezimalstellen) für die Berechnung der Lohnsteuer für den\n" + " sonstigen Bezug -->\n" + " <INTERNAL name=\"HFVBZSO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Nummer der Tabellenwerte fuer Versorgungsparameter -->\n" + " <INTERNAL name=\"J\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- Jahressteuer nach § 51a EStG, aus der Solidaritaetszuschlag und\n" + " Bemessungsgrundlage fuer die Kirchenlohnsteuer ermittelt werden in EURO -->\n" + " <INTERNAL name=\"JBMG\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechneter LZZFREIB in €, Cent\n" + " (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"JLFREIB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechnete LZZHINZU in €, Cent\n" + " (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"JLHINZU\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Jahreswert, dessen Anteil fuer einen Lohnzahlungszeitraum in\n" + " UPANTEIL errechnet werden soll in Cents -->\n" + " <INTERNAL name=\"JW\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Nummer der Tabellenwerte fuer Parameter bei Altersentlastungsbetrag -->\n" + " <INTERNAL name=\"K\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- Merker für Berechnung Lohnsteuer für mehrjährige Tätigkeit.\n" + " 0 = normale Steuerberechnung\n" + " 1 = Steuerberechnung für mehrjährige Tätigkeit\n" + " 2 = entfällt --> \n" + " <INTERNAL name=\"KENNVMT\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- Summe der Freibetraege fuer Kinder in EURO -->\n" + " <INTERNAL name=\"KFB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Beitragssatz des Arbeitgebers zur Krankenversicherung -->\n" + " <INTERNAL name=\"KVSATZAG\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Beitragssatz des Arbeitnehmers zur Krankenversicherung -->\n" + " <INTERNAL name=\"KVSATZAN\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Kennzahl fuer die Einkommensteuer-Tabellenart:\n" + " 1 = Grundtabelle\n" + " 2 = Splittingtabelle -->\n" + " <INTERNAL name=\"KZTAB\" type=\"int\" default=\"0\"/>\n" + " \n" + " <!-- Jahreslohnsteuer in EURO -->\n" + " <INTERNAL name=\"LSTJAHR\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zwischenfelder der Jahreslohnsteuer in Cent -->\n" + " <INTERNAL name=\"LST1\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"LST2\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"LST3\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"LSTOSO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"LSTSO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Mindeststeuer fuer die Steuerklassen V und VI in EURO -->\n" + " <INTERNAL name=\"MIST\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Beitragssatz des Arbeitgebers zur Pflegeversicherung -->\n" + " <INTERNAL name=\"PVSATZAG\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Beitragssatz des Arbeitnehmers zur Pflegeversicherung -->\n" + " <INTERNAL name=\"PVSATZAN\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Beitragssatz des Arbeitnehmers in der allgemeinen gesetzlichen Rentenversicherung (4 Dezimalstellen) -->\n" + " <INTERNAL name=\"RVSATZAN\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Rechenwert in Gleitkommadarstellung -->\n" + " <INTERNAL name=\"RW\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Sonderausgaben-Pauschbetrag in EURO -->\n" + " <INTERNAL name=\"SAP\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Freigrenze fuer den Solidaritaetszuschlag in EURO -->\n" + " <INTERNAL name=\"SOLZFREI\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Solidaritaetszuschlag auf die Jahreslohnsteuer in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"SOLZJ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zwischenwert fuer den Solidaritaetszuschlag auf die Jahreslohnsteuer\n" + " in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"SOLZMIN\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Tarifliche Einkommensteuer in EURO -->\n" + " <INTERNAL name=\"ST\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Tarifliche Einkommensteuer auf das 1,25-fache ZX in EURO -->\n" + " <INTERNAL name=\"ST1\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Tarifliche Einkommensteuer auf das 0,75-fache ZX in EURO -->\n" + " <INTERNAL name=\"ST2\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zwischenfeld zur Ermittlung der Steuer auf Vergütungen für mehrjährige Tätigkeit -->\n" + " <INTERNAL name=\"STOVMT\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Teilbetragssatz der Vorsorgepauschale für die Rentenversicherung (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"TBSVORV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Bemessungsgrundlage fuer den Versorgungsfreibetrag in Cents -->\n" + " <INTERNAL name=\"VBEZB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Bemessungsgrundlage für den Versorgungsfreibetrag in Cent für\n" + " den sonstigen Bezug -->\n" + " <INTERNAL name=\"VBEZBSO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Hoechstbetrag der Vorsorgepauschale nach Alterseinkuenftegesetz in EURO, C -->\n" + " <INTERNAL name=\"VHB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Vorsorgepauschale in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSP\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Vorsorgepauschale nach Alterseinkuenftegesetz in EURO, C -->\n" + " <INTERNAL name=\"VSPN\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zwischenwert 1 bei der Berechnung der Vorsorgepauschale nach\n" + " dem Alterseinkuenftegesetz in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSP1\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zwischenwert 2 bei der Berechnung der Vorsorgepauschale nach\n" + " dem Alterseinkuenftegesetz in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSP2\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Vorsorgepauschale mit Teilbeträgen für die gesetzliche Kranken- und \n" + " soziale Pflegeversicherung nach fiktiven Beträgen oder ggf. für die\n" + " private Basiskrankenversicherung und private Pflege-Pflichtversicherung \n" + " in Euro, Cent (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSP3\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Erster Grenzwert in Steuerklasse V/VI in Euro -->\n" + " <INTERNAL name=\"W1STKL5\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Zweiter Grenzwert in Steuerklasse V/VI in Euro -->\n" + " <INTERNAL name=\"W2STKL5\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/> \n" + " \n" + " <!-- Dritter Grenzwert in Steuerklasse V/VI in Euro -->\n" + " <INTERNAL name=\"W3STKL5\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Hoechstbetrag der Vorsorgepauschale nach § 10c Abs. 2 Nr. 2 EStG in EURO -->\n" + " <INTERNAL name=\"VSPMAX1\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Hoechstbetrag der Vorsorgepauschale nach § 10c Abs. 2 Nr. 3 EStG in EURO -->\n" + " <INTERNAL name=\"VSPMAX2\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Vorsorgepauschale nach § 10c Abs. 2 Satz 2 EStG vor der Hoechstbetragsberechnung\n" + " in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSPO\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Fuer den Abzug nach § 10c Abs. 2 Nrn. 2 und 3 EStG verbleibender\n" + " Rest von VSPO in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSPREST\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Hoechstbetrag der Vorsorgepauschale nach § 10c Abs. 2 Nr. 1 EStG\n" + " in EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"VSPVOR\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zu versteuerndes Einkommen gem. § 32a Abs. 1 und 2 EStG €, C\n" + " (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"X\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- gem. § 32a Abs. 1 EStG (6 Dezimalstellen) -->\n" + " <INTERNAL name=\"Y\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechnetes RE4 in €, C (2 Dezimalstellen)\n" + " nach Abzug der Freibeträge nach § 39 b Abs. 2 Satz 3 und 4. -->\n" + " <INTERNAL name=\"ZRE4\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechnetes RE4 in €, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ZRE4J\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechnetes RE4 in €, C (2 Dezimalstellen)\n" + " nach Abzug des Versorgungsfreibetrags und des Alterentlastungsbetrags\n" + " zur Berechnung der Vorsorgepauschale in €, Cent (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ZRE4VP\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Feste Tabellenfreibeträge (ohne Vorsorgepauschale) in €, Cent\n" + " (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ZTABFB\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechnetes (VBEZ abzueglich FVB) in\n" + " EURO, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ZVBEZ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Auf einen Jahreslohn hochgerechnetes VBEZ in €, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ZVBEZJ\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zu versteuerndes Einkommen in €, C (2 Dezimalstellen) -->\n" + " <INTERNAL name=\"ZVE\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Zwischenfelder zu X fuer die Berechnung der Steuer nach § 39b\n" + " Abs. 2 Satz 7 EStG in € -->\n" + " <INTERNAL name=\"ZX\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"ZZX\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"HOCH\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " <INTERNAL name=\"VERGL\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " \n" + " <!-- Jahreswert der berücksichtigten Beiträge zur privaten Basis-Krankenversicherung und \n" + " privaten Pflege-Pflichtversicherung (ggf. auch die Mindestvorsorgepauschale) in Cent. -->\n" + " <INTERNAL name=\"VKV\" type=\"BigDecimal\" default=\"new BigDecimal(0)\"/>\n" + " </INTERNALS>\n" + " </VARIABLES>\n\n" + " <CONSTANTS>\n" + " <!-- Tabelle fuer die Vomhundertsaetze des Versorgungsfreibetrags -->\n" + " <CONSTANT name=\"TAB1\" type=\"BigDecimal[]\" \n" + " value=\"{BigDecimal.valueOf (0.0), BigDecimal.valueOf (0.4), BigDecimal.valueOf (0.384), BigDecimal.valueOf (0.368),\n" + " BigDecimal.valueOf (0.352), BigDecimal.valueOf (0.336), BigDecimal.valueOf (0.32), BigDecimal.valueOf (0.304),\n" + " BigDecimal.valueOf (0.288), BigDecimal.valueOf (0.272), BigDecimal.valueOf (0.256), BigDecimal.valueOf (0.24), \n" + " BigDecimal.valueOf (0.224), BigDecimal.valueOf (0.208), BigDecimal.valueOf (0.192), BigDecimal.valueOf (0.176),\n" + " BigDecimal.valueOf (0.16), BigDecimal.valueOf (0.152), BigDecimal.valueOf (0.144), BigDecimal.valueOf (0.136),\n" + " BigDecimal.valueOf (0.128), BigDecimal.valueOf (0.12), BigDecimal.valueOf (0.112), BigDecimal.valueOf (0.104),\n" + " BigDecimal.valueOf (0.096), BigDecimal.valueOf (0.088), BigDecimal.valueOf (0.08), BigDecimal.valueOf (0.072),\n" + " BigDecimal.valueOf (0.064), BigDecimal.valueOf (0.056), BigDecimal.valueOf (0.048), BigDecimal.valueOf (0.04),\n" + " BigDecimal.valueOf (0.032), BigDecimal.valueOf (0.024), BigDecimal.valueOf (0.016), BigDecimal.valueOf (0.008),\n" + " BigDecimal.valueOf (0.0)}\"/>\n\n" + " <!-- Tabelle fuer die Hoechstbetrage des Versorgungsfreibetrags -->\n" + " <CONSTANT name=\"TAB2\" type=\"BigDecimal[]\" value=\"{BigDecimal.valueOf (0), BigDecimal.valueOf (3000), BigDecimal.valueOf (2880),\n" + " BigDecimal.valueOf (2760), BigDecimal.valueOf (2640), BigDecimal.valueOf (2520), BigDecimal.valueOf (2400), \n" + " BigDecimal.valueOf (2280), BigDecimal.valueOf (2160), BigDecimal.valueOf (2040), BigDecimal.valueOf (1920), \n" + " BigDecimal.valueOf (1800), BigDecimal.valueOf (1680), BigDecimal.valueOf (1560), BigDecimal.valueOf (1440), \n" + " BigDecimal.valueOf (1320), BigDecimal.valueOf (1200), BigDecimal.valueOf (1140), BigDecimal.valueOf (1080), \n" + " BigDecimal.valueOf (1020), BigDecimal.valueOf (960), BigDecimal.valueOf (900), BigDecimal.valueOf (840), \n" + " BigDecimal.valueOf (780), BigDecimal.valueOf (720), BigDecimal.valueOf (660), BigDecimal.valueOf (600), \n" + " BigDecimal.valueOf (540), BigDecimal.valueOf (480), BigDecimal.valueOf (420), BigDecimal.valueOf (360), \n" + " BigDecimal.valueOf (300), BigDecimal.valueOf (240), BigDecimal.valueOf (180), BigDecimal.valueOf (120), \n" + " BigDecimal.valueOf (60), BigDecimal.valueOf (0)}\"/>\n\n" + " <!-- Tabelle fuer die Zuschlaege zum Versorgungsfreibetrag -->\n" + " <CONSTANT name=\"TAB3\" type=\"BigDecimal[]\" value=\"{BigDecimal.valueOf (0), BigDecimal.valueOf (900), BigDecimal.valueOf (864), \n" + " BigDecimal.valueOf (828), BigDecimal.valueOf (792), BigDecimal.valueOf (756), BigDecimal.valueOf (720), \n" + " BigDecimal.valueOf (684), BigDecimal.valueOf (648), BigDecimal.valueOf (612), BigDecimal.valueOf (576), \n" + " BigDecimal.valueOf (540), BigDecimal.valueOf (504), BigDecimal.valueOf (468), BigDecimal.valueOf (432), \n" + " BigDecimal.valueOf (396), BigDecimal.valueOf (360), BigDecimal.valueOf (342), BigDecimal.valueOf (324), \n" + " BigDecimal.valueOf (306), BigDecimal.valueOf (288), BigDecimal.valueOf (270), BigDecimal.valueOf (252), \n" + " BigDecimal.valueOf (234), BigDecimal.valueOf (216), BigDecimal.valueOf (198), BigDecimal.valueOf (180), \n" + " BigDecimal.valueOf (162), BigDecimal.valueOf (144), BigDecimal.valueOf (126), BigDecimal.valueOf (108), \n" + " BigDecimal.valueOf (90), BigDecimal.valueOf (72), BigDecimal.valueOf (54), BigDecimal.valueOf (36), \n" + " BigDecimal.valueOf (18), BigDecimal.valueOf (0)}\"/>\n\n" + " <!-- Tabelle fuer die Vomhundertsaetze des Altersentlastungsbetrags -->\n" + " <CONSTANT name=\"TAB4\" type=\"BigDecimal[]\" value=\"{BigDecimal.valueOf (0.0), BigDecimal.valueOf (0.4), BigDecimal.valueOf (0.384),\n" + " BigDecimal.valueOf (0.368), BigDecimal.valueOf (0.352), BigDecimal.valueOf (0.336), BigDecimal.valueOf (0.32), \n" + " BigDecimal.valueOf (0.304), BigDecimal.valueOf (0.288), BigDecimal.valueOf (0.272), BigDecimal.valueOf (0.256), \n" + " BigDecimal.valueOf (0.24), BigDecimal.valueOf (0.224), BigDecimal.valueOf (0.208), BigDecimal.valueOf (0.192), \n" + " BigDecimal.valueOf (0.176), BigDecimal.valueOf (0.16), BigDecimal.valueOf (0.152), BigDecimal.valueOf (0.144), \n" + " BigDecimal.valueOf (0.136), BigDecimal.valueOf (0.128), BigDecimal.valueOf (0.12), BigDecimal.valueOf (0.112), \n" + " BigDecimal.valueOf (0.104), BigDecimal.valueOf (0.096), BigDecimal.valueOf (0.088), BigDecimal.valueOf (0.08), \n" + " BigDecimal.valueOf (0.072), BigDecimal.valueOf (0.064), BigDecimal.valueOf (0.056), BigDecimal.valueOf (0.048), \n" + " BigDecimal.valueOf (0.04), BigDecimal.valueOf (0.032), BigDecimal.valueOf (0.024), BigDecimal.valueOf (0.016), \n" + " BigDecimal.valueOf (0.008), BigDecimal.valueOf (0.0)}\"/>\n\n" + " <!-- Tabelle fuer die Hoechstbetraege des Altersentlastungsbetrags -->\n" + " <CONSTANT name=\"TAB5\" type=\"BigDecimal[]\" value=\"{BigDecimal.valueOf (0), BigDecimal.valueOf (1900), BigDecimal.valueOf (1824), \n" + " BigDecimal.valueOf (1748), BigDecimal.valueOf (1672), BigDecimal.valueOf (1596), BigDecimal.valueOf (1520), \n" + " BigDecimal.valueOf (1444), BigDecimal.valueOf (1368), BigDecimal.valueOf (1292), BigDecimal.valueOf (1216), \n" + " BigDecimal.valueOf (1140), BigDecimal.valueOf (1064), BigDecimal.valueOf (988), BigDecimal.valueOf (912), \n" + " BigDecimal.valueOf (836), BigDecimal.valueOf (760), BigDecimal.valueOf (722), BigDecimal.valueOf (684), \n" + " BigDecimal.valueOf (646), BigDecimal.valueOf (608), BigDecimal.valueOf (570), BigDecimal.valueOf (532), \n" + " BigDecimal.valueOf (494), BigDecimal.valueOf (456), BigDecimal.valueOf (418), BigDecimal.valueOf (380), \n" + " BigDecimal.valueOf (342), BigDecimal.valueOf (304), BigDecimal.valueOf (266), BigDecimal.valueOf (228), \n" + " BigDecimal.valueOf (190), BigDecimal.valueOf (152), BigDecimal.valueOf (114), BigDecimal.valueOf (76), \n" + " BigDecimal.valueOf (38), BigDecimal.valueOf (0)}\"/>\n" + " \n" + " <!-- Zahlenkonstanten fuer im Plan oft genutzte BigDecimal Werte -->\n" + " <CONSTANT name=\"ZAHL1\" type=\"BigDecimal\" value=\"BigDecimal.ONE\"/>\n" + " <CONSTANT name=\"ZAHL2\" type=\"BigDecimal\" value=\"new BigDecimal(2)\"/>\n" + " <CONSTANT name=\"ZAHL5\" type=\"BigDecimal\" value=\"new BigDecimal(5)\"/>\n" + " <CONSTANT name=\"ZAHL7\" type=\"BigDecimal\" value=\"new BigDecimal(7)\"/>\n" + " <CONSTANT name=\"ZAHL12\" type=\"BigDecimal\" value=\"new BigDecimal(12)\"/>\n" + " <CONSTANT name=\"ZAHL100\" type=\"BigDecimal\" value=\"new BigDecimal(100)\"/>\n" + " <CONSTANT name=\"ZAHL360\" type=\"BigDecimal\" value=\"new BigDecimal(360)\"/>\n" + " <CONSTANT name=\"ZAHL500\" type=\"BigDecimal\" value=\"new BigDecimal(500)\"/>\n" + " <CONSTANT name=\"ZAHL700\" type=\"BigDecimal\" value=\"new BigDecimal(700)\"/>\n" + " <CONSTANT name=\"ZAHL1000\" type=\"BigDecimal\" value=\"new BigDecimal(1000)\"/>\n" + " <CONSTANT name=\"ZAHL10000\" type=\"BigDecimal\" value=\"new BigDecimal(10000)\"/>\n\n" + " </CONSTANTS>\n\n" + " <METHODS>\n\n\n\n" + " <!-- PROGRAMMABLAUFPLAN, PAP Seite 13 -->\n" + " <!-- Neu 2016 -->\n" + " <MAIN>\n" + " <EXECUTE method=\"MPARA\"/> \n" + " <EXECUTE method=\"MRE4JL\"/>\n" + " <EVAL exec=\"VBEZBSO= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"KENNVMT= 0\"/>\n" + " \n" + " \n" + " <EXECUTE method=\"MRE4\"/>\n" + " <EXECUTE method=\"MRE4ABZ\"/>\n" + " <EXECUTE method=\"MBERECH\"/>\n\n" + " \n" + " <EXECUTE method=\"MSONST\"/>\n" + " <EXECUTE method=\"MVMT\"/>\n" + " </MAIN>\n\n" + " <!-- Zuweisung von Werten für bestimmte Sozialversicherungsparameter PAP Seite 14 -->\n" + " <METHOD name=\"MPARA\">\n" + " <IF expr=\"KRV &lt; 2\"><!-- &lt; = < -->\n" + " <THEN>\n" + " <IF expr=\"KRV == 0\">\n" + " <THEN>\n" + " <EVAL exec=\"BBGRV = new BigDecimal(74400)\"/> <!-- Neu 2016 -->\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"BBGRV = new BigDecimal(64800)\"/> <!-- Neu 2016 -->\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"RVSATZAN = BigDecimal.valueOf(0.0935)\"/>\n" + " <EVAL exec=\"TBSVORV = BigDecimal.valueOf(0.64)\"/> <!-- Neu 2016 -->\n" + " </THEN>\n" + " <ELSE>\n" + " <!-- Nichts zu tun -->\n" + " </ELSE>\n" + " </IF>\n" + " \n" + " <EVAL exec=\"BBGKVPV = new BigDecimal(50850)\"/> <!-- Neu 2016 -->\n" + " <EVAL exec=\"KVSATZAN = (KVZ.divide(ZAHL100)).add(BigDecimal.valueOf(0.07))\"/>\n" + " <EVAL exec=\"KVSATZAG = BigDecimal.valueOf(0.07)\"/>\n" + " \n" + " <IF expr=\"PVS == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"PVSATZAN = BigDecimal.valueOf(0.01675)\"/>\n" + " <EVAL exec=\"PVSATZAG = BigDecimal.valueOf(0.00675)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"PVSATZAN = BigDecimal.valueOf(0.01175)\"/>\n" + " <EVAL exec=\"PVSATZAG = BigDecimal.valueOf(0.01175)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"PVZ == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"PVSATZAN = PVSATZAN.add(BigDecimal.valueOf(0.0025))\"/>\n" + " </THEN>\n" + " </IF>\n" + " \n" + " <!-- Anfang Neu 2016 --> \n" + " <EVAL exec=\"W1STKL5 = new BigDecimal(10070)\"/>\n" + " <EVAL exec=\"W2STKL5 = new BigDecimal(26832)\"/>\n" + " <EVAL exec=\"W3STKL5 = new BigDecimal(203557)\"/>\n" + " <EVAL exec=\"GFB = new BigDecimal(8652)\"/>\n" + " <EVAL exec=\"SOLZFREI = new BigDecimal(972)\"/>\n" + " <!-- Ende Neu 2016 -->\n" + " </METHOD>\n\n" + " <!-- Ermittlung des Jahresarbeitslohns nach § 39 b Abs. 2 Satz 2 EStG, PAP Seite 15 -->\n" + " <METHOD name=\"MRE4JL\">\n" + " <IF expr=\"LZZ == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ZRE4J= RE4.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= VBEZ.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLFREIB= LZZFREIB.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLHINZU= LZZHINZU.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"LZZ == 2\">\n" + " <THEN>\n" + " <EVAL exec=\"ZRE4J= (RE4.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= (VBEZ.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLFREIB= (LZZFREIB.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLHINZU= (LZZHINZU.multiply (ZAHL12)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"LZZ == 3\">\n" + " <THEN>\n" + " <EVAL exec=\"ZRE4J= (RE4.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= (VBEZ.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLFREIB= (LZZFREIB.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLHINZU= (LZZHINZU.multiply (ZAHL360)).divide (ZAHL700, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ZRE4J= (RE4.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= (VBEZ.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLFREIB= (LZZFREIB.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLHINZU= (LZZHINZU.multiply (ZAHL360)).divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"af == 0\">\n" + " <THEN>\n" + " <EVAL exec=\"f= 1\"/>\n" + " </THEN>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Freibeträge für Versorgungsbezüge, Altersentlastungsbetrag (§ 39b Abs. 2 Satz 3 EStG), PAP Seite 16 -->\n" + " <METHOD name=\"MRE4\">\n" + " <IF expr=\"ZVBEZJ.compareTo (BigDecimal.ZERO) == 0\">\n" + " <THEN>\n" + " <EVAL exec=\"FVBZ= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"FVB= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"FVBZSO= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"FVBSO= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"VJAHR &lt; 2006\">\n" + " <THEN>\n" + " <EVAL exec=\"J= 1\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"VJAHR &lt; 2040\">\n" + " <THEN>\n" + " <EVAL exec=\"J= VJAHR - 2004\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"J= 36\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"LZZ == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"VBEZB= (VBEZM.multiply (BigDecimal.valueOf (ZMVB))).add (VBEZS)\"/>\n" + " <EVAL exec=\"HFVB= TAB2[J].divide (ZAHL12).multiply (BigDecimal.valueOf (ZMVB))\"/>\n" + " <EVAL exec=\"FVBZ= TAB3[J].divide (ZAHL12).multiply (BigDecimal.valueOf (ZMVB)).setScale (0, BigDecimal.ROUND_UP)\"/>\n" + " </THEN> \n" + " <ELSE>\n" + " <EVAL exec=\"VBEZB= ((VBEZM.multiply (ZAHL12)).add (VBEZS)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"HFVB= TAB2[J]\"/>\n" + " <EVAL exec=\"FVBZ= TAB3[J]\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"FVB= ((VBEZB.multiply (TAB1[J]))).divide (ZAHL100).setScale (2, BigDecimal.ROUND_UP)\"/>\n" + " <IF expr=\"FVB.compareTo (HFVB) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVB = HFVB\"/>\n" + " </THEN>\n" + " </IF>\n" + " \n" + " <!-- Anfang Neu 2016 -->\n" + " <IF expr=\"FVB.compareTo (ZVBEZJ) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVB = ZVBEZJ\"/>\n" + " </THEN>\n" + " </IF>\n" + " <!-- Ende Neu 2016 -->\n" + " \n" + " <EVAL exec=\"FVBSO= (FVB.add((VBEZBSO.multiply (TAB1[J])).divide (ZAHL100))).setScale (2, BigDecimal.ROUND_UP)\"/>\n" + " <IF expr=\"FVBSO.compareTo (TAB2[J]) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVBSO = TAB2[J]\"/>\n" + " </THEN> \n" + " </IF>\n" + " <EVAL exec=\"HFVBZSO= (((VBEZB.add(VBEZBSO)).divide (ZAHL100)).subtract (FVBSO)).setScale (2, BigDecimal.ROUND_DOWN)\"/> \n" + " <EVAL exec=\"FVBZSO= (FVBZ.add((VBEZBSO).divide (ZAHL100))).setScale (0, BigDecimal.ROUND_UP)\"/>\n" + " <IF expr=\"FVBZSO.compareTo (HFVBZSO) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVBZSO = HFVBZSO.setScale(0, BigDecimal.ROUND_UP)\"/>\n" + " </THEN>\n" + " </IF>\n" + " <IF expr=\"FVBZSO.compareTo (TAB3[J]) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVBZSO = TAB3[J]\"/>\n" + " </THEN>\n" + " </IF> \n" + " <EVAL exec=\"HFVBZ= ((VBEZB.divide (ZAHL100)).subtract (FVB)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"FVBZ.compareTo (HFVBZ) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVBZ = HFVBZ.setScale (0, BigDecimal.ROUND_UP)\"/>\n" + " </THEN>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " <EXECUTE method=\"MRE4ALTE\"/>\n" + " </METHOD>\n\n" + " <!-- Altersentlastungsbetrag (§ 39b Abs. 2 Satz 3 EStG), PAP Seite 17 -->\n" + " <METHOD name=\"MRE4ALTE\">\n" + " <IF expr=\"ALTER1 == 0\">\n" + " <THEN>\n" + " <EVAL exec=\"ALTE= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"AJAHR &lt; 2006\">\n" + " <THEN>\n" + " <EVAL exec=\"K= 1\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"AJAHR &lt; 2040\">\n" + " <THEN>\n" + " <EVAL exec=\"K= AJAHR - 2004\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"K= 36\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"BMG= ZRE4J.subtract (ZVBEZJ)\"/>\n" + " <!-- Lt. PAP muss hier auf ganze EUR gerundet werden -->\n" + " <EVAL exec=\"ALTE = (BMG.multiply(TAB4[K])).setScale(0, BigDecimal.ROUND_UP)\"/>\n" + " <EVAL exec=\"HBALTE= TAB5[K]\"/>\n" + " <IF expr=\"ALTE.compareTo (HBALTE) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ALTE= HBALTE\"/>\n" + " </THEN>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Ermittlung des Jahresarbeitslohns nach Abzug der Freibeträge nach § 39 b Abs. 2 Satz 3 und 4 EStG, PAP Seite 19 -->\n" + " <METHOD name=\"MRE4ABZ\"> \n" + " <EVAL exec=\"ZRE4= (ZRE4J.subtract (FVB).subtract (ALTE).subtract (JLFREIB).add (JLHINZU)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"ZRE4.compareTo (BigDecimal.ZERO) == -1\"> \n" + " <THEN> \n" + " <EVAL exec=\"ZRE4= BigDecimal.ZERO\"/> \n" + " </THEN> \n" + " </IF> \n" + " <EVAL exec=\"ZRE4VP= ZRE4J\"/>\n\n" + " <IF expr=\"KENNVMT == 2\"> \n" + " <THEN> \n" + " <EVAL exec=\"ZRE4VP = ZRE4VP.subtract(ENTSCH.divide(ZAHL100)).setScale(2,BigDecimal.ROUND_DOWN)\"/> \n" + " </THEN> \n" + " </IF>\n\n" + " <EVAL exec=\"ZVBEZ = ZVBEZJ.subtract(FVB).setScale(2, BigDecimal.ROUND_DOWN)\"/>\n\n" + " <IF expr=\"ZVBEZ.compareTo(BigDecimal.ZERO) == -1\"> \n" + " <THEN> \n" + " <EVAL exec=\"ZVBEZ = BigDecimal.ZERO\"/> \n" + " </THEN> \n" + " </IF> \n" + " </METHOD>\n\n" + " <!-- Berechnung fuer laufende Lohnzahlungszeitraueme Seite 20-->\n" + " <METHOD name=\"MBERECH\"> \n\n" + " <EXECUTE method=\"MZTABFB\"/> <!-- Neu 2016 -->\n" + " <EVAL exec=\"VFRB = ((ANP.add(FVB.add(FVBZ))).multiply(ZAHL100)).setScale(0, BigDecimal.ROUND_DOWN)\"/><!-- Neu 2016 -->\n" + " <EXECUTE method=\"MLSTJAHR\"/>\n" + " \n" + " <!-- Anfang Neu 2016 -->\n" + " <EVAL exec=\"WVFRB = ((ZVE.subtract(GFB)).multiply(ZAHL100)).setScale(0, BigDecimal.ROUND_DOWN)\"/> \n" + " <IF expr=\"WVFRB.compareTo(BigDecimal.ZERO) == -1\"> <!-- WVFRB < 0 -->\n" + " <THEN> \n" + " <EVAL exec=\"WVFRB = BigDecimal.valueOf(0)\"/> \n" + " </THEN> \n" + " </IF> \n" + " <!-- Ende Neu 2016 -->\n" + " \n" + " \n" + " <EVAL exec=\"LSTJAHR = (ST.multiply(BigDecimal.valueOf(f))).setScale(0,BigDecimal.ROUND_DOWN)\"/> \n" + " <EXECUTE method=\"UPLSTLZZ\"/>\n" + " <EXECUTE method=\"UPVKVLZZ\"/>\n" + " \n" + " <IF expr=\"ZKF.compareTo(BigDecimal.ZERO) == 1\"> <!-- ZKF > 0 -->\n" + " <THEN> \n" + " <EVAL exec=\"ZTABFB = ZTABFB.add(KFB)\"/> \n" + " <EXECUTE method=\"MRE4ABZ\"/>\n" + " <EXECUTE method=\"MLSTJAHR\"/>\n" + " <EVAL exec=\"JBMG = (ST.multiply(BigDecimal.valueOf(f))).setScale(0,BigDecimal.ROUND_DOWN)\"/> \n" + " </THEN> \n" + " <ELSE>\n" + " <EVAL exec=\"JBMG = LSTJAHR\"/> \n" + " </ELSE>\n" + " </IF> \n" + " \n" + " <EXECUTE method=\"MSOLZ\"/>\n" + " \n" + " </METHOD>\n\n" + "<!-- Ermittlung der festen Tabellenfreibeträge (ohne Vorsorgepauschale), PAP Seite 21 -->\n" + " <METHOD name=\"MZTABFB\"> \n" + " <EVAL exec=\"ANP= BigDecimal.ZERO\"/>\n" + " <IF expr=\"ZVBEZ.compareTo (BigDecimal.ZERO) &gt;= 0 &amp;&amp; ZVBEZ.compareTo(FVBZ) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"FVBZ = BigDecimal.valueOf(ZVBEZ.longValue())\"/>\n" + " </THEN>\n" + " </IF>\n" + " <IF expr=\"STKL &lt; 6\">\n" + " <THEN>\n" + " <IF expr=\"ZVBEZ.compareTo (BigDecimal.ZERO) == 1\">\n" + " <THEN>\n" + " <IF expr=\"(ZVBEZ.subtract (FVBZ)).compareTo (BigDecimal.valueOf (102)) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"ANP= (ZVBEZ.subtract (FVBZ)).setScale (0, BigDecimal.ROUND_UP)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ANP= BigDecimal.valueOf (102)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " </IF>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"FVBZ= BigDecimal.valueOf (0)\"/>\n" + " <EVAL exec=\"FVBZSO= BigDecimal.valueOf (0)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"STKL &lt; 6\">\n" + " <THEN>\n" + " <IF expr=\"ZRE4.compareTo(ZVBEZ) == 1\">\n" + " <THEN>\n" + " <IF expr=\"ZRE4.subtract(ZVBEZ).compareTo(ZAHL1000) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"ANP = ANP.add(ZRE4).subtract(ZVBEZ).setScale(0,BigDecimal.ROUND_UP)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ANP = ANP.add(ZAHL1000)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " </IF>\n" + " </THEN>\n" + " </IF>\n" + " <EVAL exec=\"KZTAB= 1\"/>\n" + " <IF expr=\"STKL == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"SAP= BigDecimal.valueOf (36)\"/>\n" + " <EVAL exec=\"KFB= (ZKF.multiply (BigDecimal.valueOf (7248))).setScale (0, BigDecimal.ROUND_DOWN)\"/> <!-- Neu 2016 -->\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"STKL == 2\">\n" + " <THEN>\n" + " <EVAL exec=\"EFA= BigDecimal.valueOf (1908)\"/>\n" + " <EVAL exec=\"SAP= BigDecimal.valueOf (36)\"/>\n" + " <EVAL exec=\"KFB= (ZKF.multiply (BigDecimal.valueOf (7248))).setScale (0, BigDecimal.ROUND_DOWN)\"/> <!-- Neu 2016 -->\n" + " </THEN>\n" + " \n" + " <ELSE>\n" + " <IF expr=\"STKL == 3\">\n" + " <THEN>\n" + " <EVAL exec=\"KZTAB= 2\"/>\n" + " <EVAL exec=\"SAP= BigDecimal.valueOf (36)\"/>\n" + " <EVAL exec=\"KFB= (ZKF.multiply (BigDecimal.valueOf (7248))).setScale (0, BigDecimal.ROUND_DOWN)\"/> <!-- Neu 2016 -->\n" + " </THEN>\n" + " \n" + " <ELSE>\n" + " <IF expr=\"STKL == 4\">\n" + " <THEN>\n" + " <EVAL exec=\"SAP= BigDecimal.valueOf (36)\"/>\n" + " <EVAL exec=\"KFB= (ZKF.multiply (BigDecimal.valueOf (3624))).setScale (0, BigDecimal.ROUND_DOWN)\"/> <!-- Neu 2016 -->\n" + " </THEN> \n" + " \n" + " <ELSE>\n" + " <IF expr=\"STKL == 5\">\n" + " <THEN>\n" + " <EVAL exec=\"SAP= BigDecimal.valueOf (36)\"/>\n" + " <EVAL exec=\"KFB= BigDecimal.ZERO\"/>\n" + " </THEN> \n" + " \n" + " <ELSE>\n" + " <EVAL exec=\"KFB= BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE> \n" + " </IF> \n" + " </ELSE> \n" + " </IF> \n" + " </ELSE> \n" + " </IF>\n" + " <EVAL exec=\"ZTABFB= (EFA.add (ANP).add (SAP).add (FVBZ)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " </METHOD>\n\n" + " <!-- Ermittlung Jahreslohnsteuer, PAP Seite 22 -->\n" + " <METHOD name=\"MLSTJAHR\">\n" + " <EXECUTE method=\"UPEVP\"/>\n" + " <IF expr=\"KENNVMT != 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ZVE= (ZRE4.subtract (ZTABFB).subtract (VSP)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EXECUTE method=\"UPMLST\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ZVE= (ZRE4.subtract (ZTABFB).subtract (VSP).subtract ((VMT).divide (ZAHL100)).subtract ((VKAPA).divide (ZAHL100))).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"ZVE.compareTo (BigDecimal.ZERO) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\" ZVE = ZVE.add(VMT.divide(ZAHL100)).add(VKAPA.divide(ZAHL100)).divide(ZAHL5).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " <EXECUTE method=\"UPMLST\"/>\n" + " <EVAL exec=\"ST= (ST.multiply (ZAHL5)).setScale (0, BigDecimal.ROUND_DOWN)\"/> \n" + " </THEN>\n" + " <ELSE>\n" + " <EXECUTE method=\"UPMLST\"/>\n" + " <EVAL exec=\"STOVMT= ST\"/>\n" + " <EVAL exec=\"ZVE= (ZVE.add(((VMT.add (VKAPA)).divide (ZAHL500)))).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EXECUTE method=\"UPMLST\"/>\n" + " <EVAL exec=\"ST= (((ST.subtract (STOVMT)).multiply (ZAHL5)).add (STOVMT)).setScale (0, BigDecimal.ROUND_DOWN)\"/> \n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF> \n" + " </METHOD>\n" + " \n" + " <!-- PAP Seite 23 --> \n" + " <METHOD name=\"UPVKVLZZ\">\n" + " <EXECUTE method=\"UPVKV\"/>\n" + " <EVAL exec=\"JW = VKV\"/>\n" + " <EXECUTE method=\"UPANTEIL\"/>\n" + " <EVAL exec=\"VKVLZZ = ANTEIL1\"/>\n" + " </METHOD>\n\n" + " <!-- PAP Seite 23 --> \n" + " <METHOD name=\"UPVKV\">\n" + " <IF expr=\"PKV &gt; 0\">\n" + " <THEN>\n" + " <IF expr=\"VSP2.compareTo(VSP3) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"VKV = VSP2.multiply(ZAHL100)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"VKV = VSP3.multiply(ZAHL100)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"VKV = BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n" + " \n" + " <!-- PAP Seite 24 -->\n" + " <!-- Neu 2016 -->\n" + " <METHOD name=\"UPLSTLZZ\">\n" + " <EVAL exec=\"JW = LSTJAHR.multiply(ZAHL100)\"/> \n" + " <EXECUTE method=\"UPANTEIL\"/>\n" + " <EVAL exec=\"LSTLZZ = ANTEIL1\"/>\n" + " </METHOD>\n" + " \n" + " <!-- Ermittlung der Jahreslohnsteuer aus dem Einkommensteuertarif. PAP Seite 25 -->\n" + " <METHOD name=\"UPMLST\">\n" + " <IF expr=\"ZVE.compareTo (ZAHL1) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"ZVE= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"X= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"X= (ZVE.divide (BigDecimal.valueOf(KZTAB))).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"STKL &lt; 5\">\n" + " <THEN>\n" + " \n" + " <!-- Neu 2016 -->\n" + " <EXECUTE method=\"UPTAB16\"/> \n\n" + " </THEN>\n" + " <ELSE>\n" + " <EXECUTE method=\"MST5_6\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD> \n\n" + " <!-- Vorsorgepauschale (§ 39b Absatz 2 Satz 5 Nummer 3 und Absatz 4 EStG)\n" + " Achtung: Es wird davon ausgegangen, dass \n" + " a) Es wird davon ausge-gangen, dassa) für die BBG (Ost) 60.000 Euro und für die BBG (West) 71.400 Euro festgelegt wird sowie\n" + " b) der Beitragssatz zur Rentenversicherung auf 18,9 % gesenkt wird.\n" + " \n" + " PAP Seite 26 -->\n" + " <METHOD name=\"UPEVP\">\n" + " <IF expr=\"KRV &gt; 1\"><!-- &lt; = < &gt; = > -->\n" + " <THEN>\n" + " <EVAL exec=\"VSP1= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE> \n" + " <IF expr=\"ZRE4VP.compareTo(BBGRV) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ZRE4VP = BBGRV\"/>\n" + " </THEN>\n" + " </IF>\n" + " <EVAL exec=\"VSP1 = (TBSVORV.multiply(ZRE4VP)).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"VSP1 = (VSP1.multiply(RVSATZAN)).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"VSP2 = (ZRE4VP.multiply(BigDecimal.valueOf(0.12))).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"STKL == 3\">\n" + " <THEN>\n" + " <EVAL exec=\"VHB = BigDecimal.valueOf(3000)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"VHB = BigDecimal.valueOf(1900)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"VSP2.compareTo (VHB) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"VSP2= VHB\"/>\n" + " </THEN>\n" + " </IF>\n" + " <EVAL exec=\"VSPN= (VSP1.add (VSP2)).setScale (0, BigDecimal.ROUND_UP)\"/>\n" + " <EXECUTE method=\"MVSP\"/>\n" + " <IF expr=\"VSPN.compareTo (VSP) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"VSP= VSPN.setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " </IF>\n" + " </METHOD>\n" + " \n" + " <!-- Vorsorgepauschale (§39b Abs. 2 Satz 5 Nr 3 EStG) Vergleichsberechnung fuer Guenstigerpruefung, PAP Seite 27 -->\n" + " <METHOD name=\"MVSP\">\n" + " <IF expr=\"ZRE4VP.compareTo(BBGKVPV) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ZRE4VP = BBGKVPV\"/>\n" + " </THEN>\n" + " </IF>\n\n" + " <IF expr=\"PKV &gt; 0\">\n" + " <THEN>\n" + " <IF expr=\"STKL == 6\">\n" + " <THEN>\n" + " <EVAL exec=\"VSP3 = BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"VSP3 = PKPV.multiply(ZAHL12).divide(ZAHL100)\"/>\n" + " <IF expr=\"PKV == 2\">\n" + " <THEN>\n" + " <EVAL exec=\"VSP3 = VSP3.subtract( ZRE4VP.multiply( KVSATZAG.add(PVSATZAG))).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN> \n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"VSP3 = ZRE4VP.multiply(KVSATZAN.add(PVSATZAN)).setScale(2, BigDecimal.ROUND_DOWN)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"VSP = VSP3.add(VSP1).setScale(0, BigDecimal.ROUND_UP)\"/>\n" + " </METHOD>\n\n" + " <!-- Lohnsteuer fuer die Steuerklassen V und VI (§ 39b Abs. 2 Satz 7 EStG), PAP Seite 28 -->\n" + " <METHOD name=\"MST5_6\">\n" + " <EVAL exec=\"ZZX= X\"/>\n" + " <IF expr=\"ZZX.compareTo(W2STKL5) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ZX= W2STKL5\"/>\n" + " <EXECUTE method=\"UP5_6\"/>\n" + " <IF expr=\"ZZX.compareTo (W3STKL5) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ST= (ST.add ((W3STKL5.subtract (W2STKL5)).multiply (BigDecimal.valueOf (0.42)))).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ST= (ST.add ((ZZX.subtract (W3STKL5)).multiply (BigDecimal.valueOf (0.45)))).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ST= (ST.add ((ZZX.subtract (W2STKL5)).multiply (BigDecimal.valueOf (0.42)))).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ZX= ZZX\"/>\n" + " <EXECUTE method=\"UP5_6\"/>\n" + " <IF expr=\"ZZX.compareTo (W1STKL5) == 1\"> \n" + " <THEN>\n" + " <EVAL exec=\"VERGL= ST\"/>\n" + " <EVAL exec=\"ZX= W1STKL5\"/> \n" + " <EXECUTE method=\"UP5_6\"/>\n" + " <EVAL exec=\"HOCH= (ST.add ((ZZX.subtract (W1STKL5)).multiply (BigDecimal.valueOf (0.42)))).setScale (0, BigDecimal.ROUND_DOWN)\"/> <!-- Neuer Wert 2014 -->\n" + " <IF expr=\"HOCH.compareTo (VERGL) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"ST= HOCH\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ST= VERGL\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Unterprogramm zur Lohnsteuer fuer die Steuerklassen V und VI (§ 39b Abs. 2 Satz 7 EStG), PAP Seite 29 -->\n" + " <METHOD name=\"UP5_6\">\n" + " <EVAL exec=\"X= (ZX.multiply (BigDecimal.valueOf (1.25))).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " \n" + " <!-- Neu 2016 -->\n" + " <EXECUTE method=\"UPTAB16\"/> \n" + " \n" + " <EVAL exec=\"ST1= ST\"/>\n" + " <EVAL exec=\"X= (ZX.multiply (BigDecimal.valueOf (0.75))).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " \n" + " <!-- Neu 2016 -->\n" + " <EXECUTE method=\"UPTAB16\"/> \n" + " \n" + " <EVAL exec=\"ST2= ST\"/>\n" + " <EVAL exec=\"DIFF= (ST1.subtract (ST2)).multiply (ZAHL2)\"/>\n" + " <EVAL exec=\"MIST= (ZX.multiply (BigDecimal.valueOf (0.14))).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"MIST.compareTo (DIFF) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ST= MIST\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ST= DIFF\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Solidaritaetszuschlag, PAP Seite 30 -->\n" + " <METHOD name=\"MSOLZ\">\n" + " <EVAL exec=\"SOLZFREI = (SOLZFREI.multiply(BigDecimal.valueOf(KZTAB)))\"/> <!-- Neu 2016 -->\n" + " <IF expr=\"JBMG.compareTo (SOLZFREI) == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"SOLZJ= (JBMG.multiply (BigDecimal.valueOf (5.5))).divide(ZAHL100).setScale(2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"SOLZMIN= (JBMG.subtract (SOLZFREI)).multiply (BigDecimal.valueOf (20)).divide (ZAHL100).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"SOLZMIN.compareTo (SOLZJ) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"SOLZJ= SOLZMIN\"/>\n" + " </THEN>\n" + " </IF>\n" + " <EVAL exec=\"JW= SOLZJ.multiply (ZAHL100).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " \n" + " <EXECUTE method=\"UPANTEIL\"/>\n" + " \n" + " <EVAL exec=\"SOLZLZZ= ANTEIL1\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"SOLZLZZ= BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <IF expr=\"R &gt; 0\">\n" + " <THEN>\n" + " <EVAL exec=\"JW= JBMG.multiply (ZAHL100)\"/> \n" + " \n" + " <EXECUTE method=\"UPANTEIL\"/>\n" + " <EVAL exec=\"BK= ANTEIL1\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"BK= BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Anteil von Jahresbetraegen fuer einen LZZ (§ 39b Abs. 2 Satz 9 EStG), PAP Seite 31 -->\n" + " <METHOD name=\"UPANTEIL\">\n" + " <IF expr=\"LZZ == 1\">\n" + " <THEN>\n" + " <EVAL exec=\"ANTEIL1= JW\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"LZZ == 2\">\n" + " <THEN>\n" + " <EVAL exec=\"ANTEIL1= JW.divide (ZAHL12, 0, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"LZZ == 3\">\n" + " <THEN> \n" + " <EVAL exec=\"ANTEIL1= (JW.multiply (ZAHL7)).divide (ZAHL360, 0, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ANTEIL1= JW.divide (ZAHL360, 0, BigDecimal.ROUND_DOWN)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Berechnung sonstiger Bezuege nach § 39b Abs. 3 Saetze 1 bis 8 EStG), PAP Seite 32 -->\n" + " <METHOD name=\"MSONST\">\n" + " <EVAL exec=\"LZZ= 1\"/>\n" + " <IF expr=\"ZMVB == 0\">\n" + " <THEN>\n" + " <EVAL exec=\"ZMVB= 12\"/>\n" + " </THEN>\n" + " </IF>\n" + " <IF expr=\"SONSTB.compareTo (BigDecimal.ZERO) == 0\">\n" + " <THEN>\n" + " <EVAL exec=\"VKVSONST= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"LSTSO= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"STS= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"SOLZS= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"BKS= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EXECUTE method=\"MOSONST\"/>\n" + " <EXECUTE method=\"UPVKV\"/>\n" + " <EVAL exec=\"VKVSONST = VKV\"/>\n" + " <EVAL exec=\"ZRE4J= ((JRE4.add (SONSTB)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= ((JVBEZ.add (VBS)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"VBEZBSO= STERBE\"/>\n" + " <EXECUTE method=\"MRE4SONST\"/>\n" + " <EXECUTE method=\"MLSTJAHR\"/>\n" + " \n" + " <!-- Anfang Neu 2016 -->\n" + " <EVAL exec=\"WVFRBM = (ZVE.subtract(GFB)).multiply(ZAHL100).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"WVFRBM.compareTo(BigDecimal.ZERO) == -1\"> <!-- WVFRBM < 0 -->\n" + " <THEN>\n" + " <EVAL exec=\"WVFRBM = BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " </IF>\n" + " <!-- Ende Neu 2016 -->\n" + " \n" + " <EXECUTE method=\"UPVKV\"/>\n" + " <EVAL exec=\"VKVSONST = VKV.subtract(VKVSONST)\"/>\n" + " <EVAL exec=\"LSTSO= ST.multiply (ZAHL100)\"/>\n" + " <!-- lt. PAP muss hier auf ganze EUR aufgerundet werden, \n" + " allerdings muss der Wert in Cent vorgehalten werden,\n" + " deshalb nach dem Aufrunden auf ganze EUR durch 'divide(ZAHL100, 0, BigDecimal.ROUND_DOWN)'\n" + " wieder die Multiplikation mit 100 -->\n" + " <EVAL exec=\"STS = LSTSO.subtract(LSTOSO).multiply(BigDecimal.valueOf(f)).divide(ZAHL100, 0, BigDecimal.ROUND_DOWN).multiply(ZAHL100)\"/>\n" + " <IF expr=\"STS.compareTo (BigDecimal.ZERO) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"STS= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " </IF>\n" + " <EVAL exec=\"SOLZS= STS.multiply (BigDecimal.valueOf (5.5)).divide (ZAHL100, 0, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"R &gt; 0\">\n" + " <THEN>\n" + " <EVAL exec=\"BKS= STS\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"BKS= BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Berechnung der Verguetung fuer mehrjaehrige Taetigkeit nach § 39b Abs. 3 Satz 9 und 10 EStG), PAP Seite 33 -->\n" + " <METHOD name=\"MVMT\">\n" + " <IF expr=\"VKAPA.compareTo (BigDecimal.ZERO) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"VKAPA= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " </IF>\n" + " <IF expr=\"(VMT.add (VKAPA)).compareTo (BigDecimal.ZERO) == 1\">\n" + " <THEN>\n" + " <IF expr=\"LSTSO.compareTo (BigDecimal.ZERO) == 0\">\n" + " <THEN>\n" + " <EXECUTE method=\"MOSONST\"/>\n" + " <EVAL exec=\"LST1= LSTOSO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"LST1= LSTSO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"VBEZBSO= STERBE.add (VKAPA)\"/>\n" + " <EVAL exec=\"ZRE4J= ((JRE4.add (SONSTB).add (VMT).add (VKAPA)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= ((JVBEZ.add (VBS).add (VKAPA)).divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"KENNVMT = 2\"/>\n" + " <EXECUTE method=\"MRE4SONST\"/>\n" + " <EXECUTE method=\"MLSTJAHR\"/>\n" + " <EVAL exec=\"LST3= ST.multiply (ZAHL100)\"/>\n" + " <EXECUTE method=\"MRE4ABZ\"/>\n" + " <EVAL exec=\"ZRE4VP = ZRE4VP.subtract(JRE4ENT.divide(ZAHL100)).subtract(SONSTENT.divide(ZAHL100))\"/>\n" + " <EVAL exec=\"KENNVMT= 1\"/>\n" + " <EXECUTE method=\"MLSTJAHR\"/>\n" + " <EVAL exec=\"LST2= ST.multiply (ZAHL100)\"/>\n" + " <EVAL exec=\"STV= LST2.subtract (LST1)\"/> \n" + " <EVAL exec=\"LST3= LST3.subtract (LST1)\"/>\n" + " <IF expr=\"LST3.compareTo (STV) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"STV= LST3\"/>\n" + " </THEN>\n" + " </IF>\n" + " <IF expr=\"STV.compareTo (BigDecimal.ZERO) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"STV= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <!-- \n" + " lt. PAP muss hier auf ganze EUR abgerundet werden.\n" + " Allerdings muss auch hier der Wert in Cent vorgehalten werden,\n" + " weshalb nach dem Aufrunden auf ganze EUR durch 'divide(ZAHL100, 0, BigDecimal.ROUND_DOWN)'\n" + " wieder die Multiplikation mit 100 erfolgt.\n" + " -->\n" + " <EVAL exec=\"STV = STV.multiply(BigDecimal.valueOf(f)).divide(ZAHL100, 0, BigDecimal.ROUND_DOWN).multiply(ZAHL100)\"/>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"SOLZV= ((STV.multiply (BigDecimal.valueOf (5.5))).divide (ZAHL100)).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"R &gt; 0\">\n" + " <THEN>\n" + " <EVAL exec=\"BKV= STV\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"BKV= BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </THEN>\n" + " <ELSE> \n" + " <EVAL exec=\"STV= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"SOLZV= BigDecimal.ZERO\"/>\n" + " <EVAL exec=\"BKV= BigDecimal.ZERO\"/>\n" + " </ELSE>\n" + " </IF>\n" + " </METHOD>\n\n" + " <!-- Sonderberechnung ohne sonstige Bezüge für Berechnung bei sonstigen Bezügen oder Vergütung für mehrjährige Tätigkeit, PAP Seite 34 -->\n" + " <METHOD name=\"MOSONST\">\n" + " <EVAL exec=\"ZRE4J= (JRE4.divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"ZVBEZJ= (JVBEZ.divide (ZAHL100)).setScale (2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLFREIB= JFREIB.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"JLHINZU= JHINZU.divide (ZAHL100, 2, BigDecimal.ROUND_DOWN)\"/>\n" + " <EXECUTE method=\"MRE4\"/>\n" + " <EXECUTE method=\"MRE4ABZ\"/>\n" + " <EVAL exec=\"ZRE4VP = ZRE4VP.subtract(JRE4ENT.divide(ZAHL100))\"/>\n" + " <EXECUTE method=\"MZTABFB\"/> <!-- Neu 2016 -->\n" + " <EVAL exec=\"VFRBS1 = ((ANP.add(FVB.add(FVBZ))).multiply(ZAHL100)).setScale(2,BigDecimal.ROUND_DOWN)\"/>\n" + " <EXECUTE method=\"MLSTJAHR\"/>\n" + " \n" + " <!-- Anfang Neu 2016 -->\n" + " <EVAL exec=\"WVFRBO = ((ZVE.subtract(GFB)).multiply(ZAHL100)).setScale(2, BigDecimal.ROUND_DOWN)\"/>\n" + " <IF expr=\"WVFRBO.compareTo(BigDecimal.ZERO) == -1 \">\n" + " <THEN>\n" + " <EVAL exec=\"WVFRBO = BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " </IF>\n" + " <!-- Ende Neu 2016 -->\n" + " \n" + " <EVAL exec=\"LSTOSO= ST.multiply (ZAHL100)\"/>\n" + " </METHOD>\n\n" + " <!-- Sonderberechnung mit sonstige Bezüge für Berechnung bei sonstigen Bezügen oder Vergütung für mehrjährige Tätigkeit, PAP Seite 35 -->\n" + " <METHOD name=\"MRE4SONST\">\n" + " <EXECUTE method=\"MRE4\"/>\n" + " <EVAL exec=\"FVB= FVBSO\"/>\n" + " <EXECUTE method=\"MRE4ABZ\"/>\n" + " <EVAL exec=\"ZRE4VP = ZRE4VP.subtract(JRE4ENT.divide(ZAHL100)).subtract(SONSTENT.divide(ZAHL100))\"/>\n" + " <EVAL exec=\"FVBZ= FVBZSO\"/>\n" + " <EXECUTE method=\"MZTABFB\"/> <!-- Neu 2016 -->\n" + " <EVAL exec=\"VFRBS2 = ((((ANP.add(FVB).add(FVBZ))).multiply(ZAHL100))).subtract(VFRBS1)\"/>\n" + " </METHOD>\n" + " \n" + " <!-- Komplett Neu 2016 -->\n" + " <!-- Tarifliche Einkommensteuer §32a EStG, PAP Seite 36 -->\n" + " <METHOD name=\"UPTAB16\">\n" + " <IF expr=\"X.compareTo(GFB.add(ZAHL1)) == -1\"> \n" + " <THEN>\n" + " <EVAL exec=\"ST= BigDecimal.ZERO\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"X.compareTo (BigDecimal.valueOf (13670)) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"Y = (X.subtract(GFB)).divide(ZAHL10000, 6,BigDecimal.ROUND_DOWN)\"/> \n" + " <EVAL exec=\"RW= Y.multiply (BigDecimal.valueOf (993.62))\"/> \n" + " <EVAL exec=\"RW= RW.add (BigDecimal.valueOf (1400))\"/>\n" + " <EVAL exec=\"ST= (RW.multiply (Y)).setScale (0, BigDecimal.ROUND_DOWN)\"/>\n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"X.compareTo (BigDecimal.valueOf (53666)) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"Y= (X.subtract (BigDecimal.valueOf (13669))).divide (ZAHL10000, 6, BigDecimal.ROUND_DOWN)\"/>\n" + " <EVAL exec=\"RW= Y.multiply (BigDecimal.valueOf (225.40))\"/>\n" + " <EVAL exec=\"RW= RW.add (BigDecimal.valueOf (2397))\"/>\n" + " <EVAL exec=\"RW= RW.multiply (Y)\"/>\n" + " <EVAL exec=\"ST= (RW.add (BigDecimal.valueOf (952.48))).setScale (0, BigDecimal.ROUND_DOWN)\"/> \n" + " </THEN>\n" + " <ELSE>\n" + " <IF expr=\"X.compareTo (BigDecimal.valueOf (254447)) == -1\">\n" + " <THEN>\n" + " <EVAL exec=\"ST= ((X.multiply (BigDecimal.valueOf (0.42))).subtract (BigDecimal.valueOf (8394.14))).setScale (0, BigDecimal.ROUND_DOWN)\"/> \n" + " </THEN>\n" + " <ELSE>\n" + " <EVAL exec=\"ST= ((X.multiply (BigDecimal.valueOf (0.45))).subtract (BigDecimal.valueOf (16027.52))).setScale (0, BigDecimal.ROUND_DOWN)\"/> \n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " </ELSE>\n" + " </IF>\n" + " <EVAL exec=\"ST= ST.multiply (BigDecimal.valueOf (KZTAB))\"/>\n" + " </METHOD>\n" + " \n" + "</METHODS>\n" + "</PAP>"; final String subst = "{$1}"; final Pattern pattern = Pattern.compile(regex); final Matcher matcher = pattern.matcher(string); // The substituted value will be contained in the result variable final String result = matcher.replaceAll(subst); System.out.println("Substitution result: " + result); } }

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html