Z30308

{
    "Z1K1": "Z2",
    "Z2K1": {
        "Z1K1": "Z6",
        "Z6K1": "Z30308"
    },
    "Z2K2": {
        "Z1K1": "Z14",
        "Z14K1": "Z30306",
        "Z14K3": {
            "Z1K1": "Z16",
            "Z16K1": "Z610",
            "Z16K2": "def Z30306(Z30306K1):\n\timport datetime\n\t\n\tdef ordinal(broj):\n\t\t# copied and modified from Z26232\n\t\tdef cardinal(Z24618K1):\n\t\t\tnumber = Z24618K1\n\t\t\tzero = \"нула\"\n\t\t\tones = [\"\", \"један\", \"два\", \"три\", \"четири\", \"пет\", \"шест\", \"седам\", \"осам\", \"девет\"]\n\t\t\tteens = [\"\", \"једанаест\", \"дванаест\", \"тринаест\", \"четрнаест\", \"петнаест\", \"шеснаест\", \"седамнаест\", \"осамнаест\", \"деветнаест\"]\n\t\t\ttens = [\"\", \"десет\", \"двадесет\", \"тридесет\", \"четрдесет\", \"педесет\", \"шездесет\", \"седамдесет\", \"осамдесет\", \"деведесет\"]\n\t\t\thundreds = [\"\", \"сто\", \"двеста\", \"триста\", \"четиристо\", \"петсто\", \"шестсто\", \"седамсто\", \"осамсто\", \"деветсто\"]\n\t\t\n\t\t\tdef join_spellings(spelling1, spelling2):\n\t\t\t\tif (spelling1 == \"\" or spelling2 == \"\"):\n\t\t\t\t\treturn spelling1 + spelling2\n\t\t\t\telse:\n\t\t\t\t\treturn spelling1 + \" \" + spelling2\n\t\t\t\n\t\t\tif number == 0:\n\t\t\t\treturn zero\n\t\t\t\t\n\t\t\tif number \u003E 1000:\n\t\t\t\traise Exception\n\t\t\t\t\n\t\t\thundreds_spelling = hundreds[number // 100]\n\t\t\t\n\t\t\tif 10 \u003C (number % 100) \u003C 20:\n\t\t\t\treturn join_spellings(hundreds_spelling, teens[number % 10])\n\t\t\telse:\n\t\t\t\ttens_spelling = tens[(number % 100) // 10]\n\t\t\t\tones_spelling = ones[number % 10]\n\t\t\t\tif tens_spelling != \"\" and ones_spelling != \"\":\n\t\t\t\t\ttens_and_ones_spelling = tens_spelling + \" и \" + ones_spelling\n\t\t\t\telse:\n\t\t\t\t\ttens_and_ones_spelling = tens_spelling + ones_spelling\n\t\t\t\treturn join_spellings(hundreds_spelling, tens_and_ones_spelling)\n\n\t\tadd_a = ['пет', 'шест', 'девет', 'десет', 'једанаест', 'дванаест', 'тринаест', 'четрнаест', 'петнаест', 'шеснаест', 'седамнаест', 'осамнаест', 'деветнаест', 'двадесет', 'тридесет', 'четрдесет', 'педесет', 'шездесет', 'седамдесет', 'осамдесет', 'деведесет']\n\t\tadd_ta = ['сто', 'четиристо', 'петсто', 'шестсто', 'седамсто', 'осамсто', 'деветсто']\n\t\tordinals = {\n\t\t\t'један': 'прва',\n\t\t\t'два': 'друга',\n\t\t\t'три': 'трећа',\n\t\t\t'четири': 'четврта',\n\t\t\t'седам': 'седма',\n\t\t\t'осам': 'осма',\n\t\t\t'двеста': 'двестота',\n\t\t\t'триста': 'тристота'\n\t\t}\n\t\t\n\t\tif broj == 0:\n\t\t\treturn 'нулта'\n\t\t\n\t\tcardinal = cardinal(broj)\n\t\tlastword = cardinal.split(' ')[-1]\n\t\t\n\t\tif lastword in add_a:\n\t\t\treturn cardinal+'а'\n\t\telif lastword in add_ta:\n\t\t\treturn cardinal+'та'\n\t\telif lastword in ordinals:\n\t\t\tresult = cardinal.split(' ')[:-1]\n\t\t\tresult.append(ordinals[lastword])\n\t\t\treturn ' '.join(result)\n\t\telse:\n\t\t\traise Exception\n\t\t\t\n\tyear = Z30306K1\n\t\n\tday = datetime.datetime(1600 + year % 400, 1, 1).weekday()\n\tdayOptions = (\"понедељак\", \"уторак\", \"среду\", \"четвртак\", \"петак\", \"суботу\", \"недељу\")\n    \n\tleap = (year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)) \n\tif year \u003C 1:\n\t\tyear = -year-1\n\t\treturn f\"{year}. п.н.е. је била {'преступна' if leap else 'проста'} година, која је почела у {dayOptions[day]}. {year}. је {ordinal(year % 1000)} година {year//1000+1}. миленијума п.н.е, {ordinal(year % 100)} година {year//100+1}. века п.н.е и {ordinal(year % 10+1)} година {(year // 10)*10}-их п.н.е.\"\n\telse:\n\t\treturn f\"{year}. је била {'преступна' if leap else 'проста'} година, која је почела у {dayOptions[day]}. {year}. је {ordinal(year % 1000)} година {year//1000+1}. миленијума, {ordinal(year % 100)} година {year//100+1}. века и {ordinal(year % 10+1)} година {(year // 10)*10}-их.\""
        }
    },
    "Z2K3": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11",
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1002",
                "Z11K2": "intro for year in Serbian, py"
            },
            {
                "Z1K1": "Z11",
                "Z11K1": "Z1181",
                "Z11K2": "уводна реченица за годину на српском, пајтон"
            }
        ]
    },
    "Z2K4": {
        "Z1K1": "Z32",
        "Z32K1": [
            "Z31"
        ]
    },
    "Z2K5": {
        "Z1K1": "Z12",
        "Z12K1": [
            "Z11"
        ]
    }
}