Wikifunctions wikifunctionswiki https://www.wikifunctions.org/wiki/Wikifunctions:Main_Page MediaWiki 1.45.0-wmf.4 first-letter Media Special Talk User User talk Wikifunctions Wikifunctions talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk TimedText TimedText talk Module Module talk Translations Translations talk Wikifunctions:Suggest a function 4 1176 191426 191284 2025-06-07T15:45:45Z Denny 81 /* Gregorian calendar date */ 191426 wikitext text/x-wiki Do you have an idea for a new function? Suggest it here! It may help to refer to [[Wikifunctions:Glossary|our glossary]]. You can [https://www.wikifunctions.org/wiki/Special:CreateZObject?zid=Z8 create a function] right away if you have the user-rights. If a function requires a new type, consider [[WF:TP|proposing it]]. Note that for now '''we only support a limited number of types as input and output types''' of functions. More types are coming in the next few months. For the full list, see [[WF:Type]]. Once created, consider adding new Functions to the [[Wikifunctions:Catalogue|catalogue]]. [[Category:Maintenance]] == Proposed functions requiring only available types (string, Boolean, Natural number, list) == === String === ==== String character discard functions ==== * remove stereochemical specificity in [[:en:Simplified_molecular-input_line-entry_system|SMILES]] string, like e/z isomers ** already fulfilled by someone else at: [[Z11815]] * simplify [[:en:Simplified_molecular-input_line-entry_system|SMILES]] string according to some basic simplifications ** {{Partly done}}, see [[Z19380]]. There's testcases, and I (or someone else) can get around to the coding later. [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 10:21, 26 October 2024 (UTC) *** {{Done}} completely, still at [[Z19380]]. Another user helpfully wrote a python script that passed 1 of my test cases between October and now. I just re-wrote the script to pass all 3 test cases, and also created a JavaScript version. [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 03:43, 10 January 2025 (UTC) ==== String character replacement functions ==== ==== String search functions ==== ==== String escaping and unescaping functions ==== ==== String encoding and decoding functions ==== * Unicode normalising functions (there are several types of normalisation) * [[wikidata:Q47467628|Backslash-U with delimiters ASCII encoding of Unicode encode]] ** Can someone elaborate on this? No example cases were given on the document, and backslash-U with delimiters is anyway not that prevalent as far as I have seen. [[User:BrightSunMan|BrightSunMan]] ([[User talk:BrightSunMan|talk]]) 15:24, 26 December 2023 (UTC) ** {{Done}}, see [[Z21486]]. I've made 5 test cases (achieving 100% coverage) and implementations in both JavaScript and Python, which passes all test cases. Support for both the Basic Multilingual Plane (BMP) and supplementary characters (using surrogate pairs). [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 02:49, 10 January 2025 (UTC) * [[wikidata:Q47467628|XML and HTML ASCII encoding of Unicode encode]] ** {{Done}}, see [[Z21503]]. Again, I've also made 5 test cases which cover a wide variety of Unicode characters, and implementations in JS and Python (which pass all the tests). As before successful support for both the Basic Multilingual Plane (BMP) and supplementary characters (this time '''not using''' surrogate pairs, as is customary for HTML/XML encoding). [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 05:30, 10 January 2025 (UTC) * [https://html.spec.whatwg.org/#named-character-references HTML named character encode] * [[wikidata:Q47466379|Punycode encode]] - [[Z10178]] (part only, not whole url); see also [[Z10185]] * [[:en:Unified_English_Braille|Unified English Braille encode]] (discarding invalid characters?) ** {{Done}}, see [[Z21514]]. 6 test cases this time, and support for both letters and numbers, with implementations in JS and Python (both passing all the tests). [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 06:00, 10 January 2025 (UTC) ==== String presentation functions ==== * add [[:en:Quotation_mark|locale-specific quotation marks]] to string ** Shouldn't the output depend on the locale? See [[mw:Extension:Scribunto/Lua_reference_manual#mw.language:formatNum|mw.language:formatNum]]. —[[User:Dexxor|Dexxor]] ([[User talk:Dexxor|talk]]) 17:15, 4 September 2023 (UTC) ==== String colour notation functions ==== * [[:en:Complementary_colors|complementary colour]] in RGB colour model ("#FF0000" ⇒ "#00FFFF") ** Any specification on invalid inputs? [[User:MilkyDefer|<span style="color:#09C">Milky</span>]][[User talk:MilkyDefer|'''<span style="color:#F09">Defer</span>''']] 11:22, 5 August 2023 (UTC) *:Great question. I don't think there is a position documented on Wikifunctions for how to handle invalid input to a function. Can we throw exceptions? Return null? [[User:Dhx1|Dhx1]] ([[User talk:Dhx1|talk]]) 13:23, 6 August 2023 (UTC) *::This shouldn't be a string function. This should be a type that represents a RGB color (with corresponding validation function (hopefully it can just be three unsigned 8bit integers)) and a function that returns the complementary color. [[User:0xDeadbeef|0xDeadbeef]] ([[User talk:0xDeadbeef|talk]]) 12:38, 7 August 2023 (UTC) ** Work on the color type has been stalled for over a year. But this task is {{Done}}, I have made [[Z21554]], that uses string hex codes (with or without the initial # and supporting short hex format). This is probably the most optimal format, as I can imagine this function being used on-wiki for thing like the style parameter (CSS) of MediaWiki tags, or of templates etc. There's 5 testcases I've made, which are passed by both my JS and Python versions. :) [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 03:39, 11 January 2025 (UTC) ==== String notation validation checks ==== * check if string is an [[:en:International_Chemical_Identifier]] ** {{Partly done}} see [[Z21539]]. Supports the verification of the chemical formula and the stereochemical layer. There are 13 testcaes that I've written, all of which are passed by my JavaScript implementation. Note that a python implementation is not possible as the regex module is not available in Wikifunctions. [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 03:09, 11 January 2025 (UTC) ** To do: *** Needs to verify the hydrogen and connection sections of the main layer *** Support the charge layer *** Support the isotopic layer **[[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 03:09, 11 January 2025 (UTC) ***{{ping|MolecularPilot}} A python impl. is infact possible. I created a basic direct translation at [[Z22823]]. Some tests are failing as the regex needs a bit of sorting out, out of scope for me, but you can give it a try! Keep in mind that you need to escape any \ with a \\ just before saving per [[Wikifunctions:Python_implementations#Known_limitations_as_of_October_2024]]. <span style="font-family:monospace;font-weight:bold">[[User:Bunnypranav|<span style="color:#63b3ed">~/Bunny</span><span style="color:#2c5282">pranav</span>]]:&lt;[[User talk:Bunnypranav|<span style="color:#63b3ed">ping</span>]]&gt;</span> 06:14, 26 February 2025 (UTC) * check if string is a [[:en:SMILES_arbitrary_target_specification|SMILES arbitrary target specification (SMARTS) notation]] * check if string is an [[:en:ABC_notation|ABC notation]] * check if string is a [[:en:LilyPond|LilyPond notation]] * {{Doing}} check if string is a [[:en:Portable_Game_Notation|portable game notation]] for a chess game ([[Z15867]], figuring out how to add newlines to the test input) * [[Z14643]] check if string is [[:en:Forsyth–Edwards Notation|Forsyth–Edwards Notation]] for a chess position * check if string is a [[:en:UIC_classification_of_locomotive_axle_arrangements|UIC classification of locomotive axle arrangements notation]] * check if a string is a valid [[:en:ISBN|ISBN]]-13 (probably just a simple variant of [[Z10821]], dropping/validating the hyphens) ** {{Done}} at [[Z23561]]. Note than ISBN-13 starts with only 978/979, a differing factor from EAN. I have added that in the func and tests as well. <span style="font-family:monospace;font-weight:bold">[[User:Bunnypranav|<span style="color:#63b3ed">~/Bunny</span><span style="color:#2c5282">pranav</span>]]:&lt;[[User talk:Bunnypranav|<span style="color:#63b3ed">ping</span>]]&gt;</span> 12:53, 26 March 2025 (UTC) * check if a string is a valid [[:en:Digital_object_identifier|DOI]] ** Something about implementation difficulties: https://stackoverflow.com/questions/27910/finding-a-doi-in-a-document-or-page [[User:Alexander-Mart-Earth|Alexander-Mart-Earth]] ([[User talk:Alexander-Mart-Earth|talk]]) 14:28, 21 December 2023 (UTC) * check if a string is a valid [[:en:ISWN|ISWN]] ** {{Done}}, see [[Z21562]]. Contains 6 test cases that I made, all of which are passed by my Python and JavaScript implementations. It supports both just numbers, and a string containing the "separator" symbols (like ., - and /). [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 07:32, 11 January 2025 (UTC) ==== String validation checks ==== * {{doing}} check if string is in [[:en:Camel_case|lower camel case]] * check if string is a valid ISO 3166 country code * check if string is a valid ISO 8601 date/time (2023-08-03 ⇒ true; 2023-02-30 ⇒ false; 2023-08-03 15:00:00.000 ⇒ true; 2023-08-03 25:00:00.000 ⇒ false) ** {{Done|by=Philipnelson99}} at [[Z14206]]. <span style="font-family:monospace;font-weight:bold">[[User:Bunnypranav|<span style="color:#63b3ed">~/Bunny</span><span style="color:#2c5282">pranav</span>]]:&lt;[[User talk:Bunnypranav|<span style="color:#63b3ed">ping</span>]]&gt;</span> 06:23, 26 February 2025 (UTC) * check if string is a valid [[:en:ISO_8601#EDTF|EDTF]] date/time * {{doing}} check if string is a valid email address (watch out, see [https://github.com/kdeldycke/awesome-falsehood#emails this list of falsehoods] about email addresses to create unit tests - email addresses are more complicated than they seem) — [[Z10410]] creating test cases in progress. Currently it is stuck on figuring out what exactly is a valid emaill address. Nearly every errata for [[RFC:3696]] is about that. * {{doing}} check if string is a valid [[d:Help:Items|Wikidata item]] — [[Z10696]] (possibly stuck on [[phab:T343593]]?) ====String analysis functions==== *Word frequency counting. Provide a list of words and their frequencies. **{{Done}}, see [[Z21593]]. Providing a list of words and frequencies would require a new type, so instead it requires the sentence and the word you want to count, and returns the occurrences. Hyphenated words are not considered a match of their components, i.e. "fast-forward" is a match of "fast-forward" but nether "fast" nor "forward", I think this is the optimal behaviour but if someone disagrees we can change it. There is a JS implementation that I made which bases all of my 4 test cases. [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 05:41, 12 January 2025 (UTC) *:@[[User:MolecularPilot|MolecularPilot]] And I have added a Python implementation at [[Z22473]]. I would appreciate if you could attach it! <span style="font-family:monospace;font-weight:bold">[[User:Bunnypranav|<span style="color:#63b3ed">~/Bunny</span><span style="color:#2c5282">pranav</span>]]:&lt;[[User talk:Bunnypranav|<span style="color:#63b3ed">ping</span>]]&gt;</span> 08:13, 15 February 2025 (UTC) *::Cool, thank you so much for doing it! Someone's already beat me to it re attaching it, but great work! :) [[User:MolecularPilot|MolecularPilot]] ([[User talk:MolecularPilot|talk]]) 21:33, 16 February 2025 (UTC) ==== Monolingual text ==== ==== String Wikitext operations ==== ... === Natural number === * rectified linear unit (ReLU) - https://www.wikifunctions.org/view/en/Z13909 === Integer=== * {{Done}} - multiply vectors ([[Z21903]], [[Z20659]]) === Byte === See [[Wikifunctions:Catalogue/Boolean operations#Byte functions|existing Byte functions]] in catalogue. * next byte without overflow: byte → byte * previous byte without overflow: byte → byte * next byte by Gray code: byte → byte * previous byte by Gray code: byte → byte * get nth bit as Boolean: byte, natural number → boolean * highest bit set: byte → boolean * lowest bit set: byte → boolean * all bits set: byte → boolean * no bits set: byte → boolean * set nth bit: byte, natural number → byte * clear nth bit: byte, natural number → byte * switch nth bit: byte, natural number → byte * add bytes without overflow: byte, byte → byte * subtract bytes without overflow: byte, byte → byte * multiply bytes without overflow: byte, byte → byte * clamped add bytes: byte, byte → byte * clamped subtract bytes: byte, byte → byte * clamped multiply bytes: byte, byte → byte * add bytes with overflow: byte, byte → byte * subtract bytes with overflow: byte, byte → byte * multiply bytes with overflow: byte, byte → byte * modulo bytes: byte, byte → byte * byte division: byte, byte → byte * reverse: byte → byte * right shift: byte → byte * left shift: byte → byte * right shift by n: byte, natural number → byte * left shift by n: byte, natural number → byte * right shift as ring: byte → byte * left shift as ring: byte → byte * right shift by n as ring: byte, natural number → byte * left shift by n as ring: byte, natural number → byte * how many bits set: byte → natural number === Unicode code point === See [[Wikifunctions:Catalogue/Character operations#Unicode code points|existing code point functions in catalogue]]. * Codepoint to list of bytes for UTF-8 * Codepoint to list of bytes for UTF-16 * Codepoint to list of bytes for UTF-32 ===Object=== === List === ==== Basic list/iterable functions ==== * group * [[w:Circular shift]] ==== Complex list functions ==== * zip lists together: for [ A .. Z ] and [ 1 .. 26 ] return [ [ A, 1 ], [ B, 2 ], .. ] ** Unsure what happens if input lists are of different lengths. ** If possible this function should be able to zip more than 2 lists together... 3, 4, n? Perhaps the input should be list(list, list, list, list, ..). *{{Z+|Z19198}} ==== CSV list operations ==== * list of strings to csv : number -> list of decimal digits<br>number -> list of binary digits<br>number -> list of digits in base provided [[User:Well very well|Well very well]] ([[User talk:Well very well|talk]]) 11:20, 18 May 2024 (UTC) === Functions with functions as arguments === * sort, by a given function * test whether certain functions have specific properties of [[:w:Homogeneous_relation|homogeneous relations]] for particular lists/sets * remove first element matching filter from list === Biology === ==== Taxon functions ==== * Wikidata item representing taxon rank ({{Q|P31}} {{Q|Q427626}}) is at genus level or below ** Should(?) be possible with the current Wikidata functionality, from what I understand. See [[:Wikifunctions:Project chat#Taxon rank function(s)]] for a more detailed explanation. --[[User:WrenFalcon|WrenFalcon]] ([[User talk:WrenFalcon|talk]]) 23:27, 16 May 2025 (UTC) === Gregorian calendar date === See [[Wikifunctions:Catalogue/Date operations#Gregorian calendar dates|catalogue of calendar date functions]] for existing functions. * Create a reading function for Dagbani that handles all the possible formats (both the English-linke and the traditional ones, both the Gregorian and the Hijra calendars). [https://docs.google.com/document/d/1u7-ZeY7NHt75JICUPAYky3-7KgkvauD_W3fBjmvpFO0/edit?tab=t.0#heading=h.gf6hp9o3gi0j] [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 15:43, 31 May 2025 (UTC) * era from date: date → era * before / sooner / earlier: date, date → boolean * after / later: date, date → boolean * same month: date, date → boolean * same day of the month: date, date → boolean * same day of the year: date, date → boolean * same calendar year: date, date → boolean * same day of the week: date, date → boolean * within a year: date, date → boolean * within a week: date, date → boolean * within n days: date, date → boolean * {{Z+|Z24918}} * months between: date, date → natural number * weeks between: date, date → natural number * previous day: date → date * n days later: date, natural number → date * n days earlier: date, natural number → date * n weeks later: date, natural number → date * n weeks earlier: date, natural number → date * n months later: date, natural number → date * n months earlier: date, natural number → date * n years later: date, natural number → date * n months later: date, natural number → date * Julian day number to date: integer → date * how many leap days passed between two dates: date, date → natural number * how many weekdays between two dates: date, date, day of the week → natural number * is it easter: date → boolean * days until next easter: date → natural number * days since last easter: date → natural number * day number of the year: date → natural number * days until the end of the year: date → natural number * is proleptic: date → boolean * within Pythons date implementation: date → boolean * within JavaScript's date implementation: date → boolean * next time a day of the year is on a specific weekday: date, day of the week → date * next time a day of the month is on a specific weekday: date, natural number, day of the week → date * next Friday the 13th: date → date * first weekday of the month: date, day of the week → date * last weekday of the month: date, day of the week → date * nth weekday of the month: date, day of the week, natural number → date * nth working days after: date, list of wikidata item references (list of holidays), wikidata item reference (place) → date == Morphological functions == morphology is the part of linguistics that studies how language parts are 'shaped' and change diachronically and when inflected. Hausa, Igbo, Malayalam, Bangla/Bengali and Dagbani are [[d:Wikidata:Lexicographical data/Focus languages|focus languages]] for Wikidata's lexicographic dataset, which is an important aspect of [[WF:glossary#Abstract Wikipedia|Abstract Wikipedia]]. === mul - Multiple languages === * inputs: natural number (new numeric type) and language Z-number; output: 'singular', 'dual', 'paucal', 'plural', etc. as string *: {{doing}}: {{Z|15977}} === ase - American Sign Language === * string: Stokoe to ase-[https://github.com/sutton-signwriting/core Sgnw] and vice-versa (consult {{ping|Slevinski}} as to best approach) === bn - Bangla === === cy - Welsh === [[w:en:colloquial Welsh morphology]] === dag - Dagbani === === de - German === * tense * person * number for each verb ** tenses: present, past, ...? ** person: first, second, third ** number: singular, plural ** {{doing}} third person singular present ** second person singular preterite === en - English === * [[Z11390]] Verb -> agent noun, e.g. "dance"->"dancer" * Join English morphemes (extends [[Z13254]] to cases like re + en + able + er + s → re-enablers. [[Z13254]] will correctly join re-enable + ers or re- + enablers, but re + enablers → “renablers” (incorrect). [[Z13275]] tests the Reduce function to produce “detoxification” from a list of four morphemes (orchestrator limit exceeded with five). I doubt we’ll want to derive “toxify” from “toxic”, however. * Derive lemmas from a form. This is envisaged as the converse of Join English morphemes. The focus would be identifying the base form (the lexeme’s lemma) rather than further segmenting the lemma. For example, “underlay” should return “underlie” (for which it is the past participle) and the noun “underlay” (for which it is the lemma) and (perhaps) the verb “underlay”, which might be the tendency of an unproductive hen or the activity of a carpet-fitter. As this is a purely functional converse, every string will have itself as a possible lemma. * Generate [[:w:Numeral_prefix|Numerical prefixes]] of various kinds from a natural number input. * {{Z+|Z19499}} '''<big>eu - Basque</big>''' * Basque language declension system in rather regular based on suffixes. ** Here a few examples for Basque declension: *** {{Z+|Z18541}} *** {{Z+|Z18670}} **Before implementing all of them, we may propose an overall classification that eases both the implementation and the future usage of the functions. Here a first try based on bibliography from the [https://www.euskaltzaindia.eus/index.php?option=com_ebe&view=bilaketa&task=pdf&Itemid=1161&atala=deklinabide-taulak Basque Language Academy]: ***Personal pronouns: they can be treated as exceptions (e.g. "zuek -> zuei", etc.) together with proper noun declension, or as a separate case. ***Determiners: they can be treated as exceptions (e.g. "hau" -> "honek", etc) together with common noun declension, or as a separated case ***Grammatical cases: ****Absolutive ("Nor"): indefinite, singular and plural ****Ergative ("Nork"): indefinite, singular and plural ****Dative ("Nori"): indefinite, singular and plural ***Place and Time: we must distinguish animate (AN) and inanimate (IN) ****Inessive IN ("Non"): indefinite, singular and plural ****Inessive AN ("Norengan"): indefinite, singular and plural - It could be a composition of "Noren" + "-gan" ****Place and time ("Nongo"): indefinite, singular and plural ****Allative IN ("Nora"): indefinite, singular and plural ****Allative AN ("Norengana"): indefinite, singular and plural - It could be a composition of "Noren/Norengan" + "-gan/-a" ****Finished Allative AN ("Noraino"): indefinite, singular and plural - It could be a composition of "Nora" + "-ino" ****Finished Allative AN ("Norengainaino"): indefinite, singular and plural - It could be a composition of "Noregana" + "-ino" ****Right way Allative IN ("Noratz"): indefinite, singular and plural - It could be a composition of "Nora" + "-ntz" ****Right way Allative AN ("Norenganantz"): indefinite, singular and plural - It could be a composition of "Norengana" + "-ntz" ****Ablative IN ("Nondik"): indefinite, singular and plural ****Ablative AN ("Norengandik"): indefinite, singular and plural ***Rest of the cases: ****Partitive ("Zerik"): indefinite ****Possessive ("Noren"): indefinite, singular and plural ****Sociative ("Norekin"): indefinite, singular and plural ****Instrumental ("Zerez"): indefinite, singular and plural ****Motivative ("Zerengatik"): indefinite, singular and plural ****Destinative ("Norentzat"): indefinite, singular and plural - It could be a composition of "Noren" + "-tzat" ***Special case: ****Prolative ("Nortzat"): indefinite ***To take into consideration: ****Together with animate and inanimate classification, we should also consider if the noun is a proper noun ("izen berezia"). We can identify that automatically (e.g. check if written in Title case, but this may not be always possible like in the beginning of sentences), but a dedicated function may be preferred (or a boolean to the generic function saying it is a proper noun). ****The main distinction is between noun ending by vowel or consonant that can be easily computed === fr - French === * [[Z11590]] Masculine adjective -> feminine, e.g. "exact"->"exacte" * Conjugated verb => Infinitive, e.g. "alla" => "aller", "mordit" => "mordre" === ha - Hausa === A notated demo sentence ("Aishà taa jeefar dà kàren Indoo" ― "Aisha threw away Indo's dog") is available at http://intent.xigt.org === ig - Igbo === === ldn - Láadan === section moved to [[WF:human languages/Z1882]] === ml - Malayalam === ===kcg - Tyap=== * Tyap has six determiners/definite articles which determine the pronoun, number (1-5), etc. forms used. ** ka & wu (basically for singular nouns and adjectives with a few exceptions) ** hu & ji (for singular and plural nouns and adjectives) ** ba & na (mainly for plural nouns. *** Determiners come after nouns. *** When an adjective comes before a noun, the determiner used is that of the adjective. E.g., a̱sham (ka) - (the) beautiful, kyang (hu) - (the) thing = a̱sham kyang (ka) - (the) beautiful thing. * Tyap has a non-uniform noun class system used for noun pluralization and conversion from one part of speech to another. E.g., a̱bwom (song) and bwom (to sing), a̱fufwuo (ears) and fufwuo (ear). * Affixation: Prefixes exist but suffixes hardly are found. == Proposed functions requiring future types == '''Note these functions cannot be implemented properly until the needed types are requested and approved.''' If one wishes to nevertheless attempt to define and implement them, * the functions and implementations should indicate prominently in their labels that their input/output types must be adjusted once support for the appropriate replacement types become available; ''and'' * the functions should ''not'' be used in the implementations of any other functions, as the later adjustment of input/output types to appropriate replacements will break those implementations. === String manipulation functions === === String analysis functions === * count distance between two letters in given alphabet (default to 26-charcater western alphabet. case insensitive. e.g. "a" & "A" ⇒ 0; "K" & "N" ⇒ 3) === String encoding and decoding functions === (would be better with types representing a stream of bytes) * [[wikidata:Q113486941|BASE45 encode]] * [[wikidata:Q113486941|BASE45 decode]] * Hexadecimal UTF-8 encode ("ABC ₤" ⇒ "41 42 43 20 E2 82 A4") * Hexadecimal UTF-8 decode ("41 42 43 20 E2 82 A4" ⇒ "ABC ₤") * Decimal UTF-8 encode ("ABC ₤" ⇒ "65 66 67 32 226 130 164") * Decimal UTF-8 decode ("65 66 67 32 226 130 164" ⇒ "ABC ₤") * Octal UTF-8 encode ("ABC ₤" ⇒ "101 102 103 40 342 202 244") * Octal UTF-8 decode ("101 102 103 40 342 202 244" ⇒ "ABC ₤") * Binary UTF-8 encode ("ABC ₤" ⇒ "01000001 01000010 01000011 00100000 11100010 10000010 10100100") * Binary UTF-8 decode ("01000001 01000010 01000011 00100000 11100010 10000010 10100100" ⇒ "ABC ₤") * Unicode code point encode ("ABC ₤" ⇒ "41 42 43 20 20A4") - [[Z10785]] * Unicode code point decode ("41 42 43 20 20A4" ⇒ "ABC ₤") * Create regular expression object/string (i.e: "test" & "i" to /test/i) === Natural language functions === * Choose singular or plural based on number (e.g. singularOrPlural("person",6") -> "people") ** Note that there are also dual and other [[:w:grammatical number|grammatical number]]s in other languages. [[User:魔琴|魔琴]] ([[User talk:魔琴|talk]]) 18:54, 26 October 2023 (UTC) ** relevant interwiki link: [[d:WD:property proposal/plural forms]] [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|talk]]) 04:15, 9 February 2024 (UTC) === Cryptographic hash functions === (would be better with types representing a stream of bytes) * {{todo}} [[wikidata:Q47477417|MD2]] - [[Z10135]] * {{todo}} [[wikidata:Q47462255|MD4]] - [[Z10136]] * {{todo}} [[wikidata:Q27036232|MD5]] - [[Z10137]] * {{todo}} [[wikidata:Q47208127|RIPEMD-128]] - [[Z10138]] * {{todo}} [[wikidata:Q47208127|RIPEMD-160]] - [[Z10139]] * {{todo}} [[wikidata:Q47463469|BLAKE2b-160]] - [[Z10140]] * {{todo}} [[wikidata:Q47463469|BLAKE2b-256]] - [[Z10141]] * {{todo}} [[wikidata:Q47463469|BLAKE2b-384]] - [[Z10142]] * {{todo}} [[wikidata:Q47463469|BLAKE2b-512]] - [[Z10143]] * {{todo}} [[wikidata:Q47463469|BLAKE2s-128]] - [[Z10144]] * {{todo}} [[wikidata:Q47463469|BLAKE2s-160]] - [[Z10145]] * {{todo}} [[wikidata:Q47463469|BLAKE2s-224]] - [[Z10146]] * {{todo}} [[wikidata:Q47463469|BLAKE2s-256]] - [[Z10147]] * {{todo}} [[wikidata:Q47465971|SHA-224]] - [[Z10149]] * {{todo}} [[wikidata:Q47465971|HMAC-SHA-256]] * {{todo}} [[wikidata:Q87486893|SHAKE-128]] - [[Z10150]] * {{todo}} [[wikidata:Q87486893|SHAKE-256]] - [[Z10151]] === Colour functions === * return colour contrast ratio (per [https://webaim.org/articles/contrast/]) of two RGB colours (provided as strings e.g. "#FF0000") === Date, time, and calendric functions === Note: 'time' type not yet supported, use 'string' (or for strictly numeric values, 'natural number') ==== Bengali calendar ==== {{z+|12926}} ==== Chinese calendar ==== ==== French Republican Calendar ==== decimalises and secularises the Gregorian * day names: {{Z+|13006}}{{not done}} '''yet''' ==== Gregorian ==== widely used calendar derived from the Julian, basis for [[xkcd:1179|ISO 8601]] * date to ISO week number {{q|2110154}} * string to date * date to ISO 8601 string *: {{done}}, see {{z|21842}}. --[[User:Sbb1413|Sbb1413]] ([[User talk:Sbb1413|talk]]) 18:47, 21 January 2025 (UTC) * date to year (yyyy) * date to month of the year (1-12) * date to month name (January-December) * date to day of the month (1-31) * date to hour of the day (0-23) * date to minutes (0-59) * date to seconds (0-59) Named Day from Date or day of year ; Input type : Date ; Output Type : String. ; The initial use case was automated population of On The Day, based on various collections of Holidays, festival days and observances. ? [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:35, 26 March 2025 (UTC) :So If you gave it 2025-05-01 It said "All Fools Day" etc.. Possibly an additional input of enumrated type to indicate which data set to pull holidays, fesitvals and observances from. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:35, 26 March 2025 (UTC) Diary/calander Header function - Using the above and other date functions, generates a data set from a given date. Hence if you give it 2003-05-01 you get back a JOSN set contianing the {Day of week:String, Day in the Month, Observances} etc. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:35, 26 March 2025 (UTC) ==== Holocene calendar ==== * [[w:en:Holocene calendar#Conversion]] *: {{done}}, see {{z|21913}}. --[[User:Sbb1413|Sbb1413]] ([[User talk:Sbb1413|talk]]) 13:30, 25 January 2025 (UTC) ==== Indian national calendar ==== ==== Islamic ==== a Lunar calendar, also called Hijri ==== Julian ==== mostly used by astronomers, some historians, and some Orthodox Christian denominations ==== Mesoamerican calendars ==== including civil and clerical forms ==== Persian ==== also called Jalali ==== Thai calendar ==== ==== Hebrew calendar ==== ==== Darian calendar ==== Proposed time-keeping system for Mars, requires Julian Date/Time to calculate. === Basic numerical functions === * round up ("1.289" & "2" ⇒ "1.29"; "5678" & "2" ⇒ "5700") *: So if the number is floating point, round to n decimal places, and if not, round to n significant figures. Is that right? [[User:BrightSunMan|BrightSunMan]] ([[User talk:BrightSunMan|talk]]) 19:36, 24 December 2023 (UTC) * round down * return integer value (5678.678 ⇒ 5678) * {{Z+|Z13587}} (23 ⇒ "twenty-three") * Convert money from US$ to anything else ** requires source of conversion rates, which is a hole in function-likeness * Arabic numeral to Etruscan numeral * Etruscan numeral to Arabic numeral * floor and ceiling functions, based on defined standards. === Data serialization functions === * parse a string as [[:en:JSON|JSON]] * extract string from JSON object based on [[:d:Q121208951|JSONPath]] (<code>{"name":"Alice"}</code>, "$.name" ⇒ "Alice") *:Why not first convert a JSON string to an object, and then have a function that extracts fields based on JSONPath? Doing Stringly-typed things like this proposal as defined isn't a good idea. [[User:0xDeadbeef|0xDeadbeef]] ([[User talk:0xDeadbeef|talk]]) 16:16, 5 August 2023 (UTC) *::This seems to be a good idea, thanks! I moved and splitted the proposal accordingly. --[[User:1-Byte|1-Byte]] ([[User talk:1-Byte|talk]]) 09:51, 6 August 2023 (UTC) *:: is it okay to go ahead to create this 'extract string from JSON object based on JSONPath' as a function ? [[User:Dolphyb|Dolphyb]] ([[User talk:Dolphyb|talk]]) 16:14, 15 February 2024 (UTC) === Basic list/iterable functions requiring numeric types === * Sum the elements of a numeric list - [[Z14038]] * Product of the elements of a numeric list * {{Z+|Z12676}} * Slice of list elements: for the supplied list, return a list of elements that are at indexes between a supplied range n:m ** Zero indexing is used (first element is index 0)? ** n and m are are included in the range? ** What happens if n and/or m are invalid indexes? * Remove slice of elements from list: return the supplied list with elements between a supplied range of indexes removed ** Zero indexing is used (first element is index 0)? ** n and m are are included in the range? ** What happens if n and/or m are invalid indexes? * Every nth element of list: returns every nth element of the supplied list * Remove every nth element of list: removes every nth element of the supplied list - * sample n objects from list (return up to n [[Wikifunctions:Determinism|random]] objects from the list) * Jaccard similarity coefficient (see https://en.wikipedia.org/wiki/Jaccard_index) === Geodetics functions === [[w:en:planetary coordinate system]], [[w:en:well-known text representation of coordinate reference systems]] ==== Earth ==== * convert coordinates outside of the ranges (-180, 180) for longitude and (-90, 90) for latitude to a canonical form ==== Mars ==== * convert coordinates outside of the ranges [0, 360) for longitude and (-90, 90) for latitude to a canonical form === Unit conversion functions === * {{Z+|15560}} === Conversion function : 2D Cartesian to 2D Polar === Input : matrix [x,y] Output: matrix [θ,r] Short text : Polar conversion of x,y to a polar space centred at 0,0 in the Cartesian. Constraints: x,y,r are reals (float64), θ lies in the range -π<0<π (Sign determined in relation to standards used in STEM applications. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 14:30, 26 March 2025 (UTC) :The companion could also be provided. As I never did Geodetic functions, I am not sure how Lat, Long to map projection would work , but useful. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 14:30, 26 March 2025 (UTC) === Trignometric Functions === * sine, cosine, *: Input : float64 Angle in radians. *: Output : float64 desired trignometric value [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:40, 26 March 2025 (UTC) ==== Function Proposal : Decimalise angle of the form ('1:x' or '1 in x') to % (in 100) or ‰ (in 1000) ==== *Suggested name: gardient_decimal. *Input type: Integer ( The 1 is implied.). Lower Bound +1: Upper Bound: 1000 (for most practical situations?) *Output type: Real/float 64. Proposer: [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:05, 28 March 2025 (UTC) ===Color Functions=== ==== Colorspace Conversion ==== x,y,Y to sRGB (Illuminant D65). Input : 3tuple of float64, Output: 3 tuple of integer, where 0>=r<=255, 0>=g<=255 0>=b<=255. Convert a color specfied as 3 float64 values, from x,y,Y colorspace to sRGB or raise an "Out of Gaumt" exception. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:09, 7 April 2025 (UTC) ==== Spectral Approximate from sRGB or XYZ values. ==== I'd like to see the techniques detailed here: http://scottburns.us/reflectance-curves-from-srgb/ implemented in Wikifunctions as the provided spreadhseet later in the paper doesn't appear to work with Libre Office. [[User:ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) 19:32, 2 June 2025 (UTC) ==== Subtractive color mix (Pigment style) ==== Implement the mixing function from Spectral.js (https://github.com/rvanwijnen/spectral.js/blob/3.0.0/spectral.js )(MIT license), to allow 2 or more sRGB triplets to be mixed like pigment colors. This is different from the subtract colors function implemented previously. === Music Functions === It would be nice to have '''12 equal temperament pitch class''' and '''12 equal temperament pitch''' types, as they would be useful for calculating harmonies and melodies. The pitch classes could be stored as natural numbers from 0 to 11, and represented with symbols C, C♯, D, ..., B. The pitches could be stored as integers with -1 being B3, 0 being C4, 1 being C♯4, etc. Over time, we could expand the pitch class and pitch types to other temperaments and just intonation. As I'm new to Wikifunctions and my coding skills are next to zero, this is just a suggestion to the community. (edited) [[User:CaffeineP|CaffeineP]] ([[User talk:CaffeineP|talk]]) 14:48, 9 April 2025 (UTC) :Yes… There are some notational challenges because of enharmonics as well as naming conventions varying by language/culture, so English A♯ is equivalent to German B and English B♭, for example. Ideally, I would want the (English) pitch class that is five semitones higher than G♭ to be displayed as C♭ rather than B. :Also, given some reference pitch like A4 = 440 Hz, we should be able to return the frequency in hertz of a given pitch and, conversely, the nearest pitch for a given frequency and its offset in cents (or whatever). The computation is a lot simpler than representing the result (or capturing how the result should be represented)! [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 20:08, 9 April 2025 (UTC) * '''12-ET Pitch Class of a Pitch''': Return the 12 equal temperament pitch class of a given 12 equal temperament pitch. For example, C4 returns C. * '''12-ET Pitch based on Pitch Class''': Return a 12 equal temperament pitch based on a given 12 equal temperament pitch class and a given integer. For example, C and 4 return C4. * '''Interval between 12-ET Pitch Classes in Semitones''': Get the interval in semitones between two 12 equal temperament pitch classes, always assuming that the first is lower than (or the same as) the second, and the interval is less than an octave. For example, C and B return 11, while B and C return 1. * '''Interval between 12-ET Pitches in Semitones''': Get the interval in semitones between two 12 equal temperament pitches. For example, C4 and B3 return -1, while C3 and B4 return 23. * '''Raise 12-ET Pitch Class by Semitones''': Get a new 12 equal temperament pitch class through raising a given pitch class by the provided number of semitones. For example, raising B by 1 semitone returns C. * '''Lower 12-ET Pitch Class by Semitones''': Same as above, but lower the pitch class instead of raising it. * '''Raise 12-ET Pitch by Semitones''': Get a new 12 equal temperament pitch through raising a given pitch by the provided number of semitones. For example, raising B3 by 1 semitone returns C4. * '''Lower 12-ET Pitch by Semitones''': Same as above, but lower the pitch instead of raising it. * '''Frequency of a 12-ET Pitch''': Return a float64 frequency in Hz based on the provided 12 equal temperament pitch (and possibly a reference pitch with its frequency; if not provided, take default A4 = 440 Hz). * '''Approximate 12-ET Pitch Class based on Frequency''': Return a 12 equal temperament pitch class approximately based on the provided frequency in Hz. * '''Approximate 12-ET Pitch based on Frequency''': Return a 12 equal temperament pitch approximately based on the provided frequency in Hz. === SVG Functions === I would be nice to generate SVG (a XML-based vector image format which is basically a long string), it could allow to replace a lot of images on Commons or templates/tools. Here some examples: * create simple forms, * create graphs (line graph/bar graph for population or for production, elections diagrams like [[:File:1900Hawaii.svg]], etc.), * create more complex visualisation like genealogical trees, * create coat of arms (?), * etc. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:47, 23 April 2025 (UTC) :@[[User:VIGNERON|VIGNERON]]: Eventually that is something we might support, but there'll be nothing any time soon. It has a number of complex security and scalability concerns, sadly. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 13:21, 23 April 2025 (UTC) ::{{ping|Jdforrester (WMF)}} thanks. I talked about it for the last Corner but I wanted to leave a record here, if we have time, maybe I'll use that time to write some things to prepare (like listing templates and tools on the Wikimedia projects that generate SVG or visualisations). Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 15:28, 23 April 2025 (UTC) :::Of course! I've explicitly added a section on this here: [[Wikifunctions:Embedded function calls#Non-text output]] — hope that helps assure you that we're thinking about it. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 21:40, 23 April 2025 (UTC) == Object / type / function functions == *{{Z+|Z17893}} *{{Z+|Z21180}} *{{Z+|Z21182}} *{{Z+|Z21193}} == External function lists == * [[WF:importing]] m54z0wa2m64xv9wx4fd9n0lkpjfjwn0 Wikifunctions:Catalogue/Date operations 4 41958 191427 191281 2025-06-07T15:46:02Z Denny 81 /* Information about a date */ 191427 wikitext text/x-wiki == Date operations == === Gregorian calendar dates === See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas. ==== Operations on a date ==== * {{Z+|Z20440}} * {{Z+|Z20750}} * {{Z+|Z20816}} ==== Information about a date ==== * {{Z+|Z20421}} * {{Z+|Z24936}} * {{Z+|Z24122}} * {{Z+|Z24948}} * {{Z+|Z20740}} * {{Z+|Z20822}} * {{Z+|Z20741}} ==== Information between two dates ==== * {{Z+|Z20430}} * {{Z+|Z20756}} * {{Z+|Z24918}} * {{Z+|Z24901}} * {{Z+|Z20744}} * {{Z+|Z20856}} ===== Conversions ===== * {{Z+|Z22844}} * {{Z+|Z23801}} * {{Z+|Z23808}} * {{Z+|Z23246}} * {{Z+|Z24884}} ==== Dates to strings ==== * {{Z+|Z20780}} * {{Z+|Z20788}} * {{Z+|Z22214}} * {{Z+|Z20770}} * {{Z+|Z24880}} * {{Z+|Z20776}} * {{Z+|Z20773}} * {{Z+|Z20782}} * {{Z+|Z20794}} * {{Z+|Z20785}} * {{Z+|Z20791}} * {{Z+|Z23197}} * {{Z+|Z20801}} ==== Strings to dates ==== * {{Z+|Z20808}} * {{Z+|Z23976}} * {{Z+|Z24007}} * {{Z+|Z23984}} * {{Z+|Z23990}} * {{Z+|Z23961}} === Day of Roman year === * {{Z+|Z20388}} * {{Z+|Z20343}} * {{Z+|Z24936}} * {{Z+|Z20355}} * {{Z+|Z20399}} * {{Z+|Z20357}} * {{Z+|Z20362}} * {{Z+|Z20367}} * {{Z+|Z20406}} * {{Z+|Z20591}} * {{Z+|Z22933}} * {{Z+|Z23427}} === Using non-date types === * {{Z+|Z10996}} * {{Z+|Z11015}} * {{Z+|Z11011}} * {{Z+|Z12176}} * {{Z+|Z13163}} * {{Z+|Z16914}} * {{Z+|Z13306}} * {{Z+|Z16908}} * {{Z+|Z13300}} * {{Z+|Z13335}} * {{Z+|Z18957}} * {{Z+|Z18961}} === Bengali date operations === * {{Z+|Z12926}} * {{Z+|Z18131}} * {{Z+|Z18435}} * {{Z+|Z18462}} * {{Z+|Z18169}} * {{Z+|Z18573}} * {{Z+|Z18582}} * {{Z+|Z18387}} * {{Z+|Z18397}} * {{Z+|Z18662}} == Year operations == ===Gregorian year=== * {{Z+|Z20166}} * {{Z+|Z20172}} * {{Z+|Z20314}} * {{Z+|Z20185}} * {{Z+|Z20160}} * {{Z+|Z20192}} * {{Z+|Z20588}} * {{Z+|Z20198}} * {{Z+|Z20219}} * {{Z+|Z20181}} * {{Z+|Z20257}} * {{Z+|Z20290}} * {{Z+|Z20302}} ==Day of the week== *{{Z+|Z17414}} *{{Z+|Z20421}} *{{Z+|Z17420}} *{{Z+|Z17435}} *{{Z+|Z17517}} *{{Z+|Z17478}} *{{Z+|Z17485}} *{{Z+|Z17452}} *{{Z+|Z17536}} *{{Z+|Z17506}} *{{Z+|Z17511}} *{{Z+|Z20290}} *{{Z+|Z20302}} *{{Z+|Z17540}} *{{Z+|Z17516}} *{{Z+|Z17549}} *{{Z+|Z17556}} *{{Z+|Z17578}} *{{Z+|Z23415}} *{{Z+|Z23419}} ==Month operations== === Gregorian months === *{{Z+|Z16137}} *{{Z+|Z16136}} *{{Z+|Z16299}} *{{Z+|Z16255}} *{{Z+|Z16230}} *{{Z+|Z16330}} *{{Z+|Z16518}} *{{Z+|Z16580}} *{{Z+|Z16272}} *{{Z+|Z16289}} *{{Z+|Z16584}} *{{Z+|Z16648}} *{{Z+|Z16542}} *{{Z+|Z16316}} *{{Z+|Z16332}} *{{Z+|Z16348}} *{{Z+|Z16307}} *{{Z+|Z16293}} *{{Z+|Z13596}} *{{Z+|Z22240}} *{{Z+|Z23403}} === Igbo months === *{{Z+|Z16000}} *{{Z+|Z16945}} *{{Z+|Z16955}} *{{Z+|Z16972}} *{{Z+|Z16973}} *{{Z+|Z16990}} *{{Z+|Z17685}} == Era operations == === Gregorian era === * {{Z+|Z17817}} * {{Z+|Z17977}} * {{Z+|Z18072}} * {{Z+|Z18080}} * {{Z+|Z18084}} == Language specific == === Basque === * {{Z+|Z18826}} === Arabic === * {{Z+|20013}} [[Category:Lists of functions]] l6fxscnuym6snpk8n82ekl74icuhfcu 191428 191427 2025-06-07T15:46:24Z Denny 81 /* Information about a date */ 191428 wikitext text/x-wiki == Date operations == === Gregorian calendar dates === See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas. ==== Operations on a date ==== * {{Z+|Z20440}} * {{Z+|Z20750}} * {{Z+|Z20816}} ==== Information about a date ==== * {{Z+|Z20421}} * {{Z+|Z24936}} * {{Z+|Z24948}} * {{Z+|Z24122}} * {{Z+|Z20740}} * {{Z+|Z20822}} * {{Z+|Z20741}} ==== Information between two dates ==== * {{Z+|Z20430}} * {{Z+|Z20756}} * {{Z+|Z24918}} * {{Z+|Z24901}} * {{Z+|Z20744}} * {{Z+|Z20856}} ===== Conversions ===== * {{Z+|Z22844}} * {{Z+|Z23801}} * {{Z+|Z23808}} * {{Z+|Z23246}} * {{Z+|Z24884}} ==== Dates to strings ==== * {{Z+|Z20780}} * {{Z+|Z20788}} * {{Z+|Z22214}} * {{Z+|Z20770}} * {{Z+|Z24880}} * {{Z+|Z20776}} * {{Z+|Z20773}} * {{Z+|Z20782}} * {{Z+|Z20794}} * {{Z+|Z20785}} * {{Z+|Z20791}} * {{Z+|Z23197}} * {{Z+|Z20801}} ==== Strings to dates ==== * {{Z+|Z20808}} * {{Z+|Z23976}} * {{Z+|Z24007}} * {{Z+|Z23984}} * {{Z+|Z23990}} * {{Z+|Z23961}} === Day of Roman year === * {{Z+|Z20388}} * {{Z+|Z20343}} * {{Z+|Z24936}} * {{Z+|Z20355}} * {{Z+|Z20399}} * {{Z+|Z20357}} * {{Z+|Z20362}} * {{Z+|Z20367}} * {{Z+|Z20406}} * {{Z+|Z20591}} * {{Z+|Z22933}} * {{Z+|Z23427}} === Using non-date types === * {{Z+|Z10996}} * {{Z+|Z11015}} * {{Z+|Z11011}} * {{Z+|Z12176}} * {{Z+|Z13163}} * {{Z+|Z16914}} * {{Z+|Z13306}} * {{Z+|Z16908}} * {{Z+|Z13300}} * {{Z+|Z13335}} * {{Z+|Z18957}} * {{Z+|Z18961}} === Bengali date operations === * {{Z+|Z12926}} * {{Z+|Z18131}} * {{Z+|Z18435}} * {{Z+|Z18462}} * {{Z+|Z18169}} * {{Z+|Z18573}} * {{Z+|Z18582}} * {{Z+|Z18387}} * {{Z+|Z18397}} * {{Z+|Z18662}} == Year operations == ===Gregorian year=== * {{Z+|Z20166}} * {{Z+|Z20172}} * {{Z+|Z20314}} * {{Z+|Z20185}} * {{Z+|Z20160}} * {{Z+|Z20192}} * {{Z+|Z20588}} * {{Z+|Z20198}} * {{Z+|Z20219}} * {{Z+|Z20181}} * {{Z+|Z20257}} * {{Z+|Z20290}} * {{Z+|Z20302}} ==Day of the week== *{{Z+|Z17414}} *{{Z+|Z20421}} *{{Z+|Z17420}} *{{Z+|Z17435}} *{{Z+|Z17517}} *{{Z+|Z17478}} *{{Z+|Z17485}} *{{Z+|Z17452}} *{{Z+|Z17536}} *{{Z+|Z17506}} *{{Z+|Z17511}} *{{Z+|Z20290}} *{{Z+|Z20302}} *{{Z+|Z17540}} *{{Z+|Z17516}} *{{Z+|Z17549}} *{{Z+|Z17556}} *{{Z+|Z17578}} *{{Z+|Z23415}} *{{Z+|Z23419}} ==Month operations== === Gregorian months === *{{Z+|Z16137}} *{{Z+|Z16136}} *{{Z+|Z16299}} *{{Z+|Z16255}} *{{Z+|Z16230}} *{{Z+|Z16330}} *{{Z+|Z16518}} *{{Z+|Z16580}} *{{Z+|Z16272}} *{{Z+|Z16289}} *{{Z+|Z16584}} *{{Z+|Z16648}} *{{Z+|Z16542}} *{{Z+|Z16316}} *{{Z+|Z16332}} *{{Z+|Z16348}} *{{Z+|Z16307}} *{{Z+|Z16293}} *{{Z+|Z13596}} *{{Z+|Z22240}} *{{Z+|Z23403}} === Igbo months === *{{Z+|Z16000}} *{{Z+|Z16945}} *{{Z+|Z16955}} *{{Z+|Z16972}} *{{Z+|Z16973}} *{{Z+|Z16990}} *{{Z+|Z17685}} == Era operations == === Gregorian era === * {{Z+|Z17817}} * {{Z+|Z17977}} * {{Z+|Z18072}} * {{Z+|Z18080}} * {{Z+|Z18084}} == Language specific == === Basque === * {{Z+|Z18826}} === Arabic === * {{Z+|20013}} [[Category:Lists of functions]] rk8tr8s9udvx94httyikqijncbejt44 191429 191428 2025-06-07T15:47:01Z Denny 81 /* Gregorian year */ 191429 wikitext text/x-wiki == Date operations == === Gregorian calendar dates === See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas. ==== Operations on a date ==== * {{Z+|Z20440}} * {{Z+|Z20750}} * {{Z+|Z20816}} ==== Information about a date ==== * {{Z+|Z20421}} * {{Z+|Z24936}} * {{Z+|Z24948}} * {{Z+|Z24122}} * {{Z+|Z20740}} * {{Z+|Z20822}} * {{Z+|Z20741}} ==== Information between two dates ==== * {{Z+|Z20430}} * {{Z+|Z20756}} * {{Z+|Z24918}} * {{Z+|Z24901}} * {{Z+|Z20744}} * {{Z+|Z20856}} ===== Conversions ===== * {{Z+|Z22844}} * {{Z+|Z23801}} * {{Z+|Z23808}} * {{Z+|Z23246}} * {{Z+|Z24884}} ==== Dates to strings ==== * {{Z+|Z20780}} * {{Z+|Z20788}} * {{Z+|Z22214}} * {{Z+|Z20770}} * {{Z+|Z24880}} * {{Z+|Z20776}} * {{Z+|Z20773}} * {{Z+|Z20782}} * {{Z+|Z20794}} * {{Z+|Z20785}} * {{Z+|Z20791}} * {{Z+|Z23197}} * {{Z+|Z20801}} ==== Strings to dates ==== * {{Z+|Z20808}} * {{Z+|Z23976}} * {{Z+|Z24007}} * {{Z+|Z23984}} * {{Z+|Z23990}} * {{Z+|Z23961}} === Day of Roman year === * {{Z+|Z20388}} * {{Z+|Z20343}} * {{Z+|Z24936}} * {{Z+|Z20355}} * {{Z+|Z20399}} * {{Z+|Z20357}} * {{Z+|Z20362}} * {{Z+|Z20367}} * {{Z+|Z20406}} * {{Z+|Z20591}} * {{Z+|Z22933}} * {{Z+|Z23427}} === Using non-date types === * {{Z+|Z10996}} * {{Z+|Z11015}} * {{Z+|Z11011}} * {{Z+|Z12176}} * {{Z+|Z13163}} * {{Z+|Z16914}} * {{Z+|Z13306}} * {{Z+|Z16908}} * {{Z+|Z13300}} * {{Z+|Z13335}} * {{Z+|Z18957}} * {{Z+|Z18961}} === Bengali date operations === * {{Z+|Z12926}} * {{Z+|Z18131}} * {{Z+|Z18435}} * {{Z+|Z18462}} * {{Z+|Z18169}} * {{Z+|Z18573}} * {{Z+|Z18582}} * {{Z+|Z18387}} * {{Z+|Z18397}} * {{Z+|Z18662}} == Year operations == ===Gregorian year=== * {{Z+|Z20166}} * {{Z+|Z24948}} * {{Z+|Z20172}} * {{Z+|Z20314}} * {{Z+|Z20185}} * {{Z+|Z20160}} * {{Z+|Z20192}} * {{Z+|Z20588}} * {{Z+|Z20198}} * {{Z+|Z20219}} * {{Z+|Z20181}} * {{Z+|Z20257}} * {{Z+|Z20290}} * {{Z+|Z20302}} ==Day of the week== *{{Z+|Z17414}} *{{Z+|Z20421}} *{{Z+|Z17420}} *{{Z+|Z17435}} *{{Z+|Z17517}} *{{Z+|Z17478}} *{{Z+|Z17485}} *{{Z+|Z17452}} *{{Z+|Z17536}} *{{Z+|Z17506}} *{{Z+|Z17511}} *{{Z+|Z20290}} *{{Z+|Z20302}} *{{Z+|Z17540}} *{{Z+|Z17516}} *{{Z+|Z17549}} *{{Z+|Z17556}} *{{Z+|Z17578}} *{{Z+|Z23415}} *{{Z+|Z23419}} ==Month operations== === Gregorian months === *{{Z+|Z16137}} *{{Z+|Z16136}} *{{Z+|Z16299}} *{{Z+|Z16255}} *{{Z+|Z16230}} *{{Z+|Z16330}} *{{Z+|Z16518}} *{{Z+|Z16580}} *{{Z+|Z16272}} *{{Z+|Z16289}} *{{Z+|Z16584}} *{{Z+|Z16648}} *{{Z+|Z16542}} *{{Z+|Z16316}} *{{Z+|Z16332}} *{{Z+|Z16348}} *{{Z+|Z16307}} *{{Z+|Z16293}} *{{Z+|Z13596}} *{{Z+|Z22240}} *{{Z+|Z23403}} === Igbo months === *{{Z+|Z16000}} *{{Z+|Z16945}} *{{Z+|Z16955}} *{{Z+|Z16972}} *{{Z+|Z16973}} *{{Z+|Z16990}} *{{Z+|Z17685}} == Era operations == === Gregorian era === * {{Z+|Z17817}} * {{Z+|Z17977}} * {{Z+|Z18072}} * {{Z+|Z18080}} * {{Z+|Z18084}} == Language specific == === Basque === * {{Z+|Z18826}} === Arabic === * {{Z+|20013}} [[Category:Lists of functions]] gdg7d3w16gcytez9mmjescgh2gsk2rv 191430 191429 2025-06-07T16:15:14Z Denny 81 /* Gregorian year */ 191430 wikitext text/x-wiki == Date operations == === Gregorian calendar dates === See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas. ==== Operations on a date ==== * {{Z+|Z20440}} * {{Z+|Z20750}} * {{Z+|Z20816}} ==== Information about a date ==== * {{Z+|Z20421}} * {{Z+|Z24936}} * {{Z+|Z24948}} * {{Z+|Z24122}} * {{Z+|Z20740}} * {{Z+|Z20822}} * {{Z+|Z20741}} ==== Information between two dates ==== * {{Z+|Z20430}} * {{Z+|Z20756}} * {{Z+|Z24918}} * {{Z+|Z24901}} * {{Z+|Z20744}} * {{Z+|Z20856}} ===== Conversions ===== * {{Z+|Z22844}} * {{Z+|Z23801}} * {{Z+|Z23808}} * {{Z+|Z23246}} * {{Z+|Z24884}} ==== Dates to strings ==== * {{Z+|Z20780}} * {{Z+|Z20788}} * {{Z+|Z22214}} * {{Z+|Z20770}} * {{Z+|Z24880}} * {{Z+|Z20776}} * {{Z+|Z20773}} * {{Z+|Z20782}} * {{Z+|Z20794}} * {{Z+|Z20785}} * {{Z+|Z20791}} * {{Z+|Z23197}} * {{Z+|Z20801}} ==== Strings to dates ==== * {{Z+|Z20808}} * {{Z+|Z23976}} * {{Z+|Z24007}} * {{Z+|Z23984}} * {{Z+|Z23990}} * {{Z+|Z23961}} === Day of Roman year === * {{Z+|Z20388}} * {{Z+|Z20343}} * {{Z+|Z24936}} * {{Z+|Z20355}} * {{Z+|Z20399}} * {{Z+|Z20357}} * {{Z+|Z20362}} * {{Z+|Z20367}} * {{Z+|Z20406}} * {{Z+|Z20591}} * {{Z+|Z22933}} * {{Z+|Z23427}} === Using non-date types === * {{Z+|Z10996}} * {{Z+|Z11015}} * {{Z+|Z11011}} * {{Z+|Z12176}} * {{Z+|Z13163}} * {{Z+|Z16914}} * {{Z+|Z13306}} * {{Z+|Z16908}} * {{Z+|Z13300}} * {{Z+|Z13335}} * {{Z+|Z18957}} * {{Z+|Z18961}} === Bengali date operations === * {{Z+|Z12926}} * {{Z+|Z18131}} * {{Z+|Z18435}} * {{Z+|Z18462}} * {{Z+|Z18169}} * {{Z+|Z18573}} * {{Z+|Z18582}} * {{Z+|Z18387}} * {{Z+|Z18397}} * {{Z+|Z18662}} == Year operations == ===Gregorian year=== * {{Z+|Z20166}} * {{Z+|Z20172}} * {{Z+|Z20314}} * {{Z+|Z20185}} * {{Z+|Z20160}} * {{Z+|Z20192}} * {{Z+|Z20588}} * {{Z+|Z20198}} * {{Z+|Z24948}} * {{Z+|Z20219}} * {{Z+|Z20181}} * {{Z+|Z20257}} * {{Z+|Z20290}} * {{Z+|Z20302}} ==Day of the week== *{{Z+|Z17414}} *{{Z+|Z20421}} *{{Z+|Z17420}} *{{Z+|Z17435}} *{{Z+|Z17517}} *{{Z+|Z17478}} *{{Z+|Z17485}} *{{Z+|Z17452}} *{{Z+|Z17536}} *{{Z+|Z17506}} *{{Z+|Z17511}} *{{Z+|Z20290}} *{{Z+|Z20302}} *{{Z+|Z17540}} *{{Z+|Z17516}} *{{Z+|Z17549}} *{{Z+|Z17556}} *{{Z+|Z17578}} *{{Z+|Z23415}} *{{Z+|Z23419}} ==Month operations== === Gregorian months === *{{Z+|Z16137}} *{{Z+|Z16136}} *{{Z+|Z16299}} *{{Z+|Z16255}} *{{Z+|Z16230}} *{{Z+|Z16330}} *{{Z+|Z16518}} *{{Z+|Z16580}} *{{Z+|Z16272}} *{{Z+|Z16289}} *{{Z+|Z16584}} *{{Z+|Z16648}} *{{Z+|Z16542}} *{{Z+|Z16316}} *{{Z+|Z16332}} *{{Z+|Z16348}} *{{Z+|Z16307}} *{{Z+|Z16293}} *{{Z+|Z13596}} *{{Z+|Z22240}} *{{Z+|Z23403}} === Igbo months === *{{Z+|Z16000}} *{{Z+|Z16945}} *{{Z+|Z16955}} *{{Z+|Z16972}} *{{Z+|Z16973}} *{{Z+|Z16990}} *{{Z+|Z17685}} == Era operations == === Gregorian era === * {{Z+|Z17817}} * {{Z+|Z17977}} * {{Z+|Z18072}} * {{Z+|Z18080}} * {{Z+|Z18084}} == Language specific == === Basque === * {{Z+|Z18826}} === Arabic === * {{Z+|20013}} [[Category:Lists of functions]] n6ijccvrxuomriy0mi67ize4oojjef7 191453 191430 2025-06-07T17:19:10Z Denny 81 /* Information about a date */ 191453 wikitext text/x-wiki == Date operations == === Gregorian calendar dates === See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas. ==== Operations on a date ==== * {{Z+|Z20440}} * {{Z+|Z20750}} * {{Z+|Z20816}} ==== Information about a date ==== * {{Z+|Z20421}} * {{Z+|Z24936}} * {{Z+|Z24948}} * {{Z+|Z24962}} * {{Z+|Z24122}} * {{Z+|Z20740}} * {{Z+|Z20822}} * {{Z+|Z20741}} ==== Information between two dates ==== * {{Z+|Z20430}} * {{Z+|Z20756}} * {{Z+|Z24918}} * {{Z+|Z24901}} * {{Z+|Z20744}} * {{Z+|Z20856}} ===== Conversions ===== * {{Z+|Z22844}} * {{Z+|Z23801}} * {{Z+|Z23808}} * {{Z+|Z23246}} * {{Z+|Z24884}} ==== Dates to strings ==== * {{Z+|Z20780}} * {{Z+|Z20788}} * {{Z+|Z22214}} * {{Z+|Z20770}} * {{Z+|Z24880}} * {{Z+|Z20776}} * {{Z+|Z20773}} * {{Z+|Z20782}} * {{Z+|Z20794}} * {{Z+|Z20785}} * {{Z+|Z20791}} * {{Z+|Z23197}} * {{Z+|Z20801}} ==== Strings to dates ==== * {{Z+|Z20808}} * {{Z+|Z23976}} * {{Z+|Z24007}} * {{Z+|Z23984}} * {{Z+|Z23990}} * {{Z+|Z23961}} === Day of Roman year === * {{Z+|Z20388}} * {{Z+|Z20343}} * {{Z+|Z24936}} * {{Z+|Z20355}} * {{Z+|Z20399}} * {{Z+|Z20357}} * {{Z+|Z20362}} * {{Z+|Z20367}} * {{Z+|Z20406}} * {{Z+|Z20591}} * {{Z+|Z22933}} * {{Z+|Z23427}} === Using non-date types === * {{Z+|Z10996}} * {{Z+|Z11015}} * {{Z+|Z11011}} * {{Z+|Z12176}} * {{Z+|Z13163}} * {{Z+|Z16914}} * {{Z+|Z13306}} * {{Z+|Z16908}} * {{Z+|Z13300}} * {{Z+|Z13335}} * {{Z+|Z18957}} * {{Z+|Z18961}} === Bengali date operations === * {{Z+|Z12926}} * {{Z+|Z18131}} * {{Z+|Z18435}} * {{Z+|Z18462}} * {{Z+|Z18169}} * {{Z+|Z18573}} * {{Z+|Z18582}} * {{Z+|Z18387}} * {{Z+|Z18397}} * {{Z+|Z18662}} == Year operations == ===Gregorian year=== * {{Z+|Z20166}} * {{Z+|Z20172}} * {{Z+|Z20314}} * {{Z+|Z20185}} * {{Z+|Z20160}} * {{Z+|Z20192}} * {{Z+|Z20588}} * {{Z+|Z20198}} * {{Z+|Z24948}} * {{Z+|Z20219}} * {{Z+|Z20181}} * {{Z+|Z20257}} * {{Z+|Z20290}} * {{Z+|Z20302}} ==Day of the week== *{{Z+|Z17414}} *{{Z+|Z20421}} *{{Z+|Z17420}} *{{Z+|Z17435}} *{{Z+|Z17517}} *{{Z+|Z17478}} *{{Z+|Z17485}} *{{Z+|Z17452}} *{{Z+|Z17536}} *{{Z+|Z17506}} *{{Z+|Z17511}} *{{Z+|Z20290}} *{{Z+|Z20302}} *{{Z+|Z17540}} *{{Z+|Z17516}} *{{Z+|Z17549}} *{{Z+|Z17556}} *{{Z+|Z17578}} *{{Z+|Z23415}} *{{Z+|Z23419}} ==Month operations== === Gregorian months === *{{Z+|Z16137}} *{{Z+|Z16136}} *{{Z+|Z16299}} *{{Z+|Z16255}} *{{Z+|Z16230}} *{{Z+|Z16330}} *{{Z+|Z16518}} *{{Z+|Z16580}} *{{Z+|Z16272}} *{{Z+|Z16289}} *{{Z+|Z16584}} *{{Z+|Z16648}} *{{Z+|Z16542}} *{{Z+|Z16316}} *{{Z+|Z16332}} *{{Z+|Z16348}} *{{Z+|Z16307}} *{{Z+|Z16293}} *{{Z+|Z13596}} *{{Z+|Z22240}} *{{Z+|Z23403}} === Igbo months === *{{Z+|Z16000}} *{{Z+|Z16945}} *{{Z+|Z16955}} *{{Z+|Z16972}} *{{Z+|Z16973}} *{{Z+|Z16990}} *{{Z+|Z17685}} == Era operations == === Gregorian era === * {{Z+|Z17817}} * {{Z+|Z17977}} * {{Z+|Z18072}} * {{Z+|Z18080}} * {{Z+|Z18084}} == Language specific == === Basque === * {{Z+|Z18826}} === Arabic === * {{Z+|20013}} [[Category:Lists of functions]] 64yktfy6se1imp0dmeuo7dm48utvlrm 191491 191453 2025-06-08T11:32:13Z 99of9 1622 /* Operations on a date */ Z24968 191491 wikitext text/x-wiki == Date operations == === Gregorian calendar dates === See [[Wikifunctions:Suggest a function#Gregorian calendar date|suggested functions]] for more function ideas. ==== Operations on a date ==== * {{Z+|Z20440}} * {{Z+|Z24968}} * {{Z+|Z20750}} * {{Z+|Z20816}} ==== Information about a date ==== * {{Z+|Z20421}} * {{Z+|Z24936}} * {{Z+|Z24948}} * {{Z+|Z24962}} * {{Z+|Z24122}} * {{Z+|Z20740}} * {{Z+|Z20822}} * {{Z+|Z20741}} ==== Information between two dates ==== * {{Z+|Z20430}} * {{Z+|Z20756}} * {{Z+|Z24918}} * {{Z+|Z24901}} * {{Z+|Z20744}} * {{Z+|Z20856}} ===== Conversions ===== * {{Z+|Z22844}} * {{Z+|Z23801}} * {{Z+|Z23808}} * {{Z+|Z23246}} * {{Z+|Z24884}} ==== Dates to strings ==== * {{Z+|Z20780}} * {{Z+|Z20788}} * {{Z+|Z22214}} * {{Z+|Z20770}} * {{Z+|Z24880}} * {{Z+|Z20776}} * {{Z+|Z20773}} * {{Z+|Z20782}} * {{Z+|Z20794}} * {{Z+|Z20785}} * {{Z+|Z20791}} * {{Z+|Z23197}} * {{Z+|Z20801}} ==== Strings to dates ==== * {{Z+|Z20808}} * {{Z+|Z23976}} * {{Z+|Z24007}} * {{Z+|Z23984}} * {{Z+|Z23990}} * {{Z+|Z23961}} === Day of Roman year === * {{Z+|Z20388}} * {{Z+|Z20343}} * {{Z+|Z24936}} * {{Z+|Z20355}} * {{Z+|Z20399}} * {{Z+|Z20357}} * {{Z+|Z20362}} * {{Z+|Z20367}} * {{Z+|Z20406}} * {{Z+|Z20591}} * {{Z+|Z22933}} * {{Z+|Z23427}} === Using non-date types === * {{Z+|Z10996}} * {{Z+|Z11015}} * {{Z+|Z11011}} * {{Z+|Z12176}} * {{Z+|Z13163}} * {{Z+|Z16914}} * {{Z+|Z13306}} * {{Z+|Z16908}} * {{Z+|Z13300}} * {{Z+|Z13335}} * {{Z+|Z18957}} * {{Z+|Z18961}} === Bengali date operations === * {{Z+|Z12926}} * {{Z+|Z18131}} * {{Z+|Z18435}} * {{Z+|Z18462}} * {{Z+|Z18169}} * {{Z+|Z18573}} * {{Z+|Z18582}} * {{Z+|Z18387}} * {{Z+|Z18397}} * {{Z+|Z18662}} == Year operations == ===Gregorian year=== * {{Z+|Z20166}} * {{Z+|Z20172}} * {{Z+|Z20314}} * {{Z+|Z20185}} * {{Z+|Z20160}} * {{Z+|Z20192}} * {{Z+|Z20588}} * {{Z+|Z20198}} * {{Z+|Z24948}} * {{Z+|Z20219}} * {{Z+|Z20181}} * {{Z+|Z20257}} * {{Z+|Z20290}} * {{Z+|Z20302}} ==Day of the week== *{{Z+|Z17414}} *{{Z+|Z20421}} *{{Z+|Z17420}} *{{Z+|Z17435}} *{{Z+|Z17517}} *{{Z+|Z17478}} *{{Z+|Z17485}} *{{Z+|Z17452}} *{{Z+|Z17536}} *{{Z+|Z17506}} *{{Z+|Z17511}} *{{Z+|Z20290}} *{{Z+|Z20302}} *{{Z+|Z17540}} *{{Z+|Z17516}} *{{Z+|Z17549}} *{{Z+|Z17556}} *{{Z+|Z17578}} *{{Z+|Z23415}} *{{Z+|Z23419}} ==Month operations== === Gregorian months === *{{Z+|Z16137}} *{{Z+|Z16136}} *{{Z+|Z16299}} *{{Z+|Z16255}} *{{Z+|Z16230}} *{{Z+|Z16330}} *{{Z+|Z16518}} *{{Z+|Z16580}} *{{Z+|Z16272}} *{{Z+|Z16289}} *{{Z+|Z16584}} *{{Z+|Z16648}} *{{Z+|Z16542}} *{{Z+|Z16316}} *{{Z+|Z16332}} *{{Z+|Z16348}} *{{Z+|Z16307}} *{{Z+|Z16293}} *{{Z+|Z13596}} *{{Z+|Z22240}} *{{Z+|Z23403}} === Igbo months === *{{Z+|Z16000}} *{{Z+|Z16945}} *{{Z+|Z16955}} *{{Z+|Z16972}} *{{Z+|Z16973}} *{{Z+|Z16990}} *{{Z+|Z17685}} == Era operations == === Gregorian era === * {{Z+|Z17817}} * {{Z+|Z17977}} * {{Z+|Z18072}} * {{Z+|Z18080}} * {{Z+|Z18084}} == Language specific == === Basque === * {{Z+|Z18826}} === Arabic === * {{Z+|20013}} [[Category:Lists of functions]] 45ixtzm4gw1ier8hycdv7rkjdca3323 Z20420 0 43801 191450 191057 2025-06-07T17:17:11Z Denny 81 191450 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20420" }, "Z2K2": { "Z1K1": "Z4", "Z4K1": "Z20420", "Z4K2": [ "Z3", { "Z1K1": "Z3", "Z3K1": "Z20159", "Z3K2": "Z20420K1", "Z3K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "année" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "বছর" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Jahr" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "연도" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "سنة" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "anno" } ] }, "Z3K4": { "Z1K1": "Z40", "Z40K1": "Z42" } }, { "Z1K1": "Z3", "Z3K1": "Z20342", "Z3K2": "Z20420K2", "Z3K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "দিন" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Tag" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "일" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "يوم" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] }, "Z3K4": { "Z1K1": "Z40", "Z40K1": "Z42" } } ], "Z4K3": "Z101", "Z4K4": "Z20430", "Z4K5": "Z20780", "Z4K6": "Z20808", "Z4K7": [ "Z46", "Z20424", "Z20438" ], "Z4K8": [ "Z64", "Z20443", "Z20448" ] }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Gregorian calendar date" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "date du calendrier grégorien" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "গ্রেগরীয় বর্ষপঞ্জির তারিখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Datum des Gregorianischen Kalenders" }, { "Z1K1": "Z11", "Z11K1": "Z1592", "Z11K2": "Gregorianskt datum" }, { "Z1K1": "Z11", "Z11K1": "Z1332", "Z11K2": "Дата григоріанського календаря" }, { "Z1K1": "Z11", "Z11K1": "Z1664", "Z11K2": "Dată în calendarul gregorian " }, { "Z1K1": "Z11", "Z11K1": "Z1827", "Z11K2": "ημερομηνία Γρηγοριανού ημερολογίου" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "Дата григорианского календаря" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "그레고리력 날짜" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "تاريخ بالتقويم الغريغوري" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Data di calendario Gregoriano" }, { "Z1K1": "Z11", "Z11K1": "Z1051", "Z11K2": "gregoriaaninen kalenteripäivä" }, { "Z1K1": "Z11", "Z11K1": "Z1789", "Z11K2": "data del calendari gregorià" }, { "Z1K1": "Z11", "Z11K1": "Z1381", "Z11K2": "data no calendário gregoriano" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "গ্রেগরীয় তারিখ" ] }, { "Z1K1": "Z31", "Z31K1": "Z1592", "Z31K2": [ "Z6", "Datum i gregorianska kalendern" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "Data Gregoriana" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "date", "day" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "A date in the proleptic Gregorian calendar" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "une date dans le calendrier grégorien proleptique." }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "গ্রেগরীয় বর্ষপঞ্জি অনুযায়ী কোনো তারিখ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Datum im proleptischen Gregorianischen Kalender" }, { "Z1K1": "Z11", "Z11K1": "Z1332", "Z11K2": "Дата в пролептичному григоріанському календарі" }, { "Z1K1": "Z11", "Z11K1": "Z1664", "Z11K2": "O dată în calendarul proleptic gregorian " }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "태양력 그레고리력의 날짜" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Una data nel calendario Gregoriano prolettico" }, { "Z1K1": "Z11", "Z11K1": "Z1381", "Z11K2": "Uma data no calendário proléptico gregoriano" } ] } } srj31wnga0x9n6v45ca6e3m10jcbrru Z20440 0 43824 191432 148351 2025-06-07T16:35:39Z Denny 81 Added Z24956 to the approved list of test cases 191432 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956" ], "Z8K4": [ "Z14", "Z20568", "Z20444" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." } ] } } eosar9yvqldf07l8l1acp83713odis4 191434 191432 2025-06-07T16:37:59Z Denny 81 Added Z20570 and Z24957 to the approved list of test cases 191434 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957" ], "Z8K4": [ "Z14", "Z20568", "Z20444" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." } ] } } hpyhuxm30iykz078p074ogofh5dnnwo 191435 191434 2025-06-07T16:38:17Z WikiLambda system 3 Updated the implementation list 191435 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957" ], "Z8K4": [ "Z14", "Z20444", "Z20568" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." } ] } } a7kaat7dzad7hd63wr6dgk6zk6jx59y 191443 191435 2025-06-07T17:03:25Z Dv103 11127 +it 191443 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957" ], "Z8K4": [ "Z14", "Z20444", "Z20568" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno successivo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "domani", "un giorno dopo" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce il giorno successivo nel Calendario gregoriano prolettico" } ] } } qwjyzncadkqrvyvje6n2m3g7gd8oqwu 191444 191443 2025-06-07T17:03:48Z Dv103 11127 Added Z24960 to the approved list of test cases 191444 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957", "Z24960" ], "Z8K4": [ "Z14", "Z20444", "Z20568" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno successivo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "domani", "un giorno dopo" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce il giorno successivo nel Calendario gregoriano prolettico" } ] } } kkuhp8o5jau3y3omktmkus4x0m37y5j 191448 191444 2025-06-07T17:09:08Z Denny 81 Added Z24961 to the approved list of test cases 191448 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957", "Z24960", "Z24961" ], "Z8K4": [ "Z14", "Z20444", "Z20568" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno successivo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "domani", "un giorno dopo" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce il giorno successivo nel Calendario gregoriano prolettico" } ] } } 1rvyq3igvngqhmbocpnw4obts4o1kzn 191464 191448 2025-06-07T18:45:54Z Dv103 11127 Added Z24958 to the approved list of implementations 191464 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957", "Z24960", "Z24961" ], "Z8K4": [ "Z14", "Z20444", "Z20568", "Z24958" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno successivo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "domani", "un giorno dopo" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce il giorno successivo nel Calendario gregoriano prolettico" } ] } } bprogfr65m3qfeyaxdfuaszvyzc36n1 191468 191464 2025-06-07T18:54:38Z Dv103 11127 Added Z20442 to the approved list of implementations 191468 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957", "Z24960", "Z24961" ], "Z8K4": [ "Z14", "Z20444", "Z20568", "Z24958", "Z20442" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno successivo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "domani", "un giorno dopo" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce il giorno successivo nel Calendario gregoriano prolettico" } ] } } reja01abrxfqzw4ttlqyp78nfofc1us 191493 191468 2025-06-08T11:39:08Z 99of9 1622 Added Z24971 to the approved list of test cases 191493 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20440" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20440K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "jour" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20441", "Z20445", "Z20569", "Z24956", "Z20570", "Z24957", "Z24960", "Z24961", "Z24971" ], "Z8K4": [ "Z14", "Z20444", "Z20568", "Z24958", "Z20442" ], "Z8K5": "Z20440" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "next day" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "следующий день" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno successivo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "following day", "tomorrow", "one day later" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "jour suivant", "demain", "un jour plus tard" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "domani", "un giorno dopo" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the next day in the Gregorian proleptic calendar." }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie la date du lendemain dans le calendrier proleptique grégorien." }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce il giorno successivo nel Calendario gregoriano prolettico" } ] } } 450lzjj89a8auehglhvurzgoojn4esn Z20442 0 43826 191442 148356 2025-06-07T17:03:15Z Denny 81 191442 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20442" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z801", "Z801K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z20172", "Z20172K1": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z20420K2": { "Z1K1": "Z7", "Z7K1": "Z20355", "Z20355K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z20420K2" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en Composition" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if last day bounce year else keep year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 071o4fbb30vihizlgf6ijuzks2pxper 191445 191442 2025-06-07T17:07:29Z Denny 81 191445 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20442" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z801", "Z801K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z20172", "Z20172K1": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z20420K2": { "Z1K1": "Z7", "Z7K1": "Z20355", "Z20355K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en Composition" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if last day bounce year else keep year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } c3lbftiopv90ti7ajdzlnl195pc1m0n 191465 191445 2025-06-07T18:48:48Z Dv103 11127 191465 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20442" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z801", "Z801K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z20172", "Z20172K1": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z20420K2": { "Z1K1": "Z7", "Z7K1": "Z802" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en Composition" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if last day bounce year else keep year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fxvael1381b4jucpuf1jip1sour7j3i 191466 191465 2025-06-07T18:50:40Z Dv103 11127 191466 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20442" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z801", "Z801K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z20172", "Z20172K1": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z20420K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": "curu", "Z802K2": "ufu", "Z802K3": "fuu" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en Composition" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if last day bounce year else keep year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } d60cy9iiqv7m40h9d40evaqjvfsnsxi 191467 191466 2025-06-07T18:54:03Z Dv103 11127 191467 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20442" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z801", "Z801K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z20172", "Z20172K1": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z20420K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z20181", "Z20181K1": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z20399", "Z20399K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z20355", "Z20355K1": { "Z1K1": "Z7", "Z7K1": "Z24936", "Z24936K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en Composition" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "if last day bounce year else keep year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } eu7oh2k9n5ngbaecgcbhiylqurhzwli Z20568 0 43997 191437 148411 2025-06-07T16:50:49Z Denny 81 191437 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20568" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z20440( Z20440K1 ) {\n\tconst d = new Date();\n\tvar y = BigInt( Z20440K1.K1 );\n\tvar offset = 0n;\n\twhile (y \u003C -100000n) {\n\t\toffset -= 100000n;\n\t\ty += 100000n;\n\t}\n\twhile (y \u003E 100000n) {\n\t\toffset += 100000n;\n\t\ty -= 100000n;\n\t}\n\td.setFullYear(Number(y), Z20440K1.K2, Z20440K1.K3);\n\td.setDate(d.getDate() + 1);\n\treturn {\n\t\t'K1': BigInt( d.getFullYear() ) + offset,\n\t\t'K2': d.getMonth(),\n\t\t'K3': d.getDate()\n\t};\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "setDate(getDate+1)" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en JavaScript" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } a980uogy3tacv02n7ktt9fjqh59j547 191447 191437 2025-06-07T17:08:53Z Dv103 11127 191447 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20568" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z20440( Z20440K1 ) {\n\tconst d = new Date();\n\tvar y = BigInt( Z20440K1.K1 );\n\tvar offset = 0n;\n\tif (y \u003C -100000n) {\n\t\toffset = -((-y)/100000n)*100000n;\n\t\ty -= offset;\n\t}\n\tif (y \u003E 100000n) {\n\t\toffset = (y/ 100000n)*100000n;\n\t\ty -= offset;\n\t}\n\td.setFullYear(Number(y), Z20440K1.K2, Z20440K1.K3);\n\td.setDate(d.getDate() + 1);\n\treturn {\n\t\t'K1': BigInt( d.getFullYear() ) + offset,\n\t\t'K2': d.getMonth(),\n\t\t'K3': d.getDate()\n\t};\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "setDate(getDate+1)" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "lendemain, en JavaScript" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } cijwrabk3pvuw7dri7hjearqzu41gnn Z20750 0 45248 191440 145750 2025-06-07T16:57:36Z Dv103 11127 Added Z24959 to the approved list of test cases 191440 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20750" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20750K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16683", "Z17K2": "Z20750K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Number" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20752", "Z20753", "Z20754", "Z24959" ], "Z8K4": [ "Z14", "Z20751" ], "Z8K5": "Z20750" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "add gregorian date " ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9ikfme90v2bbze3jh1qhse18s26xa77 191459 191440 2025-06-07T18:33:21Z Dv103 11127 Added Z24966 to the approved list of implementations 191459 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20750" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20750K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16683", "Z17K2": "Z20750K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Number" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20752", "Z20753", "Z20754", "Z24959" ], "Z8K4": [ "Z14", "Z20751", "Z24966" ], "Z8K5": "Z20750" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "add gregorian date " ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } py7bic9lcgfkr08eqr37x450202ore1 191460 191459 2025-06-07T18:33:25Z Dv103 11127 Removed Z20751 from the approved list of implementations 191460 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20750" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20750K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16683", "Z17K2": "Z20750K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Number" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20752", "Z20753", "Z20754", "Z24959" ], "Z8K4": [ "Z14", "Z24966" ], "Z8K5": "Z20750" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "add gregorian date " ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hu08c36k1u3nddpz7oet0mvuowdo4iw 191463 191460 2025-06-07T18:40:32Z Dv103 11127 Added Z20751 to the approved list of implementations 191463 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20750" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20750K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16683", "Z17K2": "Z20750K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Number" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20752", "Z20753", "Z20754", "Z24959" ], "Z8K4": [ "Z14", "Z24966", "Z20751" ], "Z8K5": "Z20750" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "add gregorian date " ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } efyeze0kqvpg4ej7oy8vqfbwx866i3z 191470 191463 2025-06-07T19:02:46Z Dv103 11127 Added Z24967 to the approved list of test cases 191470 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20750" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20750K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16683", "Z17K2": "Z20750K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Number" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20752", "Z20753", "Z20754", "Z24959", "Z24967" ], "Z8K4": [ "Z14", "Z24966", "Z20751" ], "Z8K5": "Z20750" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "add gregorian date " ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } km0xb3gnk3a7g26ellin10bgl7b4nnp 191471 191470 2025-06-07T19:02:51Z Dv103 11127 Removed Z20751 from the approved list of implementations 191471 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20750" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z20750K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z16683", "Z17K2": "Z20750K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Number" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z20752", "Z20753", "Z20754", "Z24959", "Z24967" ], "Z8K4": [ "Z14", "Z24966" ], "Z8K5": "Z20750" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "add gregorian date " ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hyo5f4g33ukhf6rif0voqzuouwx8dlk Z20751 0 45249 191461 146198 2025-06-07T18:37:02Z Dv103 11127 191461 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20751" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20750", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z20750(Z20750K1, Z20750K2):\n\tdef isLeap(Z20181K1):\n\t\t\treturn Z20181K1 % 4 == 0 and not (Z20181K1 % 100 == 0 and Z20181K1 % 400 != 0)\n\tyear = Z20750K1['K1']\n\tmonth = Z20750K1['K2']\n\tday = Z20750K1['K3']\n\tmonthLengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\t#imma try this thingy\n\tday += Z20750K2\n\tdayTotal = 0\n\twhile day \u003E (dayTotal + monthLengths[month - 1]):\n\t\tday -= monthLengths[month - 1]\n\t\tdayTotal += monthLengths[month - 1]\n\t\tmonth += 1\n\t\tif (month \u003E 12):\n\t\t\tyear += 1\n\t\t\tmonth = 1\n\tif day == 0:\n\t\tmonth -= 1\n\t\tday = monthLengths[month - 1]\n\twhile day \u003E monthLengths[month - 1]:\n\t\tday -= monthLengths[month - 1]\n\t\tmonth += 1\n\treturn {\n\t\t'K1': year,\n\t\t'K2': month,\n\t\t'K3': day\n\t}\n\t\t" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days, Python" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fs31ldegjcu4fexb1950b4rveapdj87 191462 191461 2025-06-07T18:40:08Z Dv103 11127 191462 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20751" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20750", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z20750(Z20750K1, Z20750K2):\n\tdef isLeap(Z20181K1):\n\t\t\treturn Z20181K1 % 4 == 0 and not (Z20181K1 % 100 == 0 and Z20181K1 % 400 != 0)\n\tyear = Z20750K1['K1']\n\tmonth = Z20750K1['K2']\n\tday = Z20750K1['K3']\n\tmonthLengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\tif isLeap(year):\n\t\tmonthLengths[1]=29\n\t#imma try this thingy\n\tday += Z20750K2\n\tdayTotal = 0\n\twhile day \u003E (dayTotal + monthLengths[month - 1]):\n\t\tday -= monthLengths[month - 1]\n\t\tdayTotal += monthLengths[month - 1]\n\t\tmonth += 1\n\t\tif (month \u003E 12):\n\t\t\tyear += 1\n\t\t\tmonth = 1\n\t\t\tmonthLengths[1]=29 if isLeap(year) else 28 \n\tif day == 0:\n\t\tmonth -= 1\n\t\tday = monthLengths[month - 1]\n\twhile day \u003E monthLengths[month - 1]:\n\t\tday -= monthLengths[month - 1]\n\t\tmonth += 1\n\treturn {\n\t\t'K1': year,\n\t\t'K2': month,\n\t\t'K3': day\n\t}\n\t\t" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Move N days, Python" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } oa18ijujz3ui0g3i64tns41zijchtwv Z23961 0 54349 191413 191107 2025-06-07T12:23:35Z Dv103 11127 Added Z24947 to the approved list of implementations 191413 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z23961" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z23961K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "data" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z23962", "Z23964", "Z23969", "Z23970", "Z23971", "Z23972", "Z23973", "Z24032", "Z24031", "Z24934" ], "Z8K4": [ "Z14", "Z23965", "Z24947" ], "Z8K5": "Z23961" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "leggi data gregoriana italiana" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "parse Gregorian Date in Italian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Tries to parse the Gregorian Date in Italian in the most lenient way possible" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": " " } ] } } 3c73tqd9a7qm2vdis6xi09r7kppvka6 Wikifunctions:Status updates/2025-06-06 4 58082 191473 191393 2025-06-08T09:06:14Z Ameisenigel 44 tvar 191473 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = <translate><!--T:1--> Previous update</translate> | prev = 2025-05-29 | nextlabel = <translate><!--T:2--> Next update</translate> | next = }} <translate> === Where will Abstract Content go? === <!--T:3--> <!--T:4--> We are currently running [[<tvar name=1>:meta:Special:MyLanguage/Abstract Wikipedia/Location of Abstract Content</tvar>|a consultation about the location of Abstract Content for Abstract Wikipedia]]. I am extremely thankful to the many thoughtful contributions to that consultation. I have to admit that I started with an opinion about what would be the best answer, but in internal discussions before the consultation I had changed my mind, and with the arguments and points raised in the consultation, I am changing my mind again. <!--T:5--> Today, I want to give a quick overview of my current state of thinking. Note though that I am not making the decision alone, but that it will be a decision by several stakeholders within the movement. <!--T:6--> Originally, I was expecting Wikidata to be the natural host for long-form Abstract Content. But, among other arguments, that would increase the strain and technical challenges on Wikidata. <!--T:7--> The only two options I currently see for long-form Abstract Content are on Wikifunctions, or as an entirely new project. On Wikifunctions it would have the advantage that the creation and maintenance of functions would be located very close to the main user of these functions. With a new project it would have the advantage of cleanly separating the content from the technology, and the two communities could each govern themselves, with their own rules, administrators, and processes. <!--T:8--> One could argue that by having Abstract Content on Wikidata it would be close to the data which is expected to be heavily used. And whereas I think that is a good argument, the technical challenges mentioned above probably outweigh these. <!--T:9--> Personally, I think that we should stop thinking of the movement as 800 or 900 individual projects, but as one large project, but that’s a topic for a different time. Shoutout to the stewards, global sysops, and other cross-wiki supporters for their difficult and important global work! <!--T:10--> In addition to the repository of long-form Abstract Content, we will also help the Wikidata team introduce Wikifunctions references as a data type on Wikidata. This means that new properties can be created that point to a Wikifunctions object (put simply, Wikidata properties can have ZIDs as values). This will allow for a lot of flexibility in the future and pave the way for Abstract Descriptions, Abstract Glosses, or complex values and multilingual notes. <!--T:11--> In short: I think that it’s going to be either a new wiki or a new namespace on Wikifunctions. Both of these would be accompanied with a new datatype for Wikifunctions objects on Wikidata for use there. <!--T:12--> As a reminder on the process: we will be closing the consultation next week. Everyone is still invited to add further arguments afterwards, but we won’t be actively tracking and following the page after that point, and anything that comes in later might be missed when considering the answer. We aim to come to a conclusion in the next few weeks, after the consultation period ends, and then to create a plan in the following quarter on how to implement the decision, and finally to implement that plan in the following quarters. <!--T:13--> I want to express my gratitude to everyone who has contributed to this process so far, and I am looking forward to the comments in the final week of the consultation! Thank you! <!--T:14--> ''P.S.:'' I understand that the consultation was not as multi-lingual as some have hoped for. We have heard your concerns. It was my decision to reach out to all projects, although we had inadequate translation coverage. We received some great input from members of smaller projects, for which I am thankful for. Note that this process isn’t a vote, and thus the goal is not to have full representation, but rather a consultation, and the idea is to hear many different arguments and ideas in order to help with the decision-making. Other consultations, votes, and Requests for Comments might have different requirements with regards to a multi-lingual outreach. === Recent Changes in the software === <!--T:15--> <!--T:16--> Last week was one of our once-every-two-months regular "Fix It Weeks", where we dedicate the team's time to fixing architectural issues, technical debt, and minor bugs we've noticed during development, though we also made some progress on Quarterly work. <!--T:17--> We have made more progress on the light-weight enum work (<tvar name="1">[[:phab:T390558|T390558]]</tvar>). We have re-built our internal Object search API to allow complex Type and return Type combinations (<tvar name="2">[[:phab:T394712|T394712]]</tvar>), and changed how we store details of what Objects' Type and return Type are, to allow us to model the lightweight enum Type-returning Function (<tvar name="3">[[:phab:T391915|T391915]]</tvar>). <!--T:18--> We fixed a tricky bug in our visual editor code noticed during the Hackathon last month that meant that checking the visual diff of your edit after making a change to an embedded Function call would delete it from the page (<tvar name="1">[[:phab:T393319|T393319]]</tvar>). We also fixed a bug in new, not-yet-deployed code that meant that the language dialog no longer searched for languages correctly (<tvar name="2">[[:phab:T395469|T395469]]</tvar>). <!--T:19--> We changed our visual editor integration code to consistently emit field updates on changes, rather than only in validation states, to allow any other forms of change to be consistent (<tvar name="1">[[:phab:T395540|T395540]]</tvar>). We also unified the styling of the "chips" for embedded Function call fragments, so they don't have different appearance or cause jumps when transitioning (<tvar name="2">[[:phab:T395547|T395547]]</tvar>). <!--T:20--> We have fixed a series of issues related to font size, found as part of preparing for the upstream change of these in Codex last month. This includes in the accordion in the Function Metadata dialog (<tvar name="1">[[:phab:T392703|T392703]]</tvar>), in the Function report's icons on Implementation and Test case pages (<tvar name="2">[[:phab:T392707|T392707]]</tvar>), in the code editor (<tvar name="3">[[:phab:T392711|T392711]]</tvar>), in the expanded toggle control in complex Objects (<tvar name="4">[[:phab:T392704|T392704]]</tvar>), in the Function call component's icon sizes for the Function call, argument references, and Wikidata entities (<tvar name="5">[[:phab:T392706|T392706]]</tvar>), in the "empty" bubble for the language of a ZMonoLingualString component (<tvar name="6">[[:phab:T392700|T392700]]</tvar>), in Type converters' empty states, and in a number of other areas we noticed that didn't have individual tasks. <!--T:21--> We replaced our use of the mw.Uri utility with the browser-native URL API (<tvar name="1">[[:phab:T394820|T394820]]</tvar>), as our part of Wikimedia-wide work to deprecate the utility. <!--T:22--> We've re-factored the code around the code that handles embedded Wikifunctions calls in wikitext, to move most of the cache access code into the isolated database access code, for easier reasoning and testing. We consolidated some of our code around publishing Implementation code, to avoid repeating ourselves and so any future feature changes or bug fixes will need to be done only once (<tvar name="1">[[:phab:T357696|T357696]]</tvar>). We also switched our uses of HTTP status codes out for a set of constants, for consistency (<tvar name="2">[[:phab:T394746|T394746]]</tvar>). <!--T:23--> We, along with all Wikimedia-deployed code, are now using the latest version of the Codex UX library, v2.0.0, as of this week. We believe that there should be no user-visible changes on Wikifunctions, so please comment on the Project chat or file a Phabricator task if you spot an issue. === Recording of presentation at Wikidata and Sister Project === <!--T:24--> <!--T:25--> The recording of the presentation ''[<tvar name="1">https://www.youtube.com/live/7oKb0DoYEag</tvar> Wikifunctions: how Wikidata powers language functions (and beyond)]'' by [[<tvar name="2">User:DMartin (WMF)</tvar>|David Martin]] and [[<tvar name="3">User:Sannita (WMF)</tvar>|Luca Martinelli]] at the [[<tvar name="4">:d:Special:MyLanguage/Event:Wikidata and Sister Projects</tvar>|Wikidata and Sister Projects event]] is now [<tvar name="1">https://www.youtube.com/live/7oKb0DoYEag</tvar> available on YouTube]. === Recording of last Volunteers’ Corner available === <!--T:26--> <!--T:27--> The [[<tvar name="1">:commons:File:Abstract Wikipedia Volunteer Corner 2025-06.webm</tvar>|recording of Monday’s Volunteers’ Corner]] is now available on Wikimedia Commons. We thank all volunteers who joined us, and wish you happy watching! === Fresh Functions weekly: 14 new Functions === <!--T:28--> <!--T:29--> This week we had 14 new functions. Here is a sample of the new functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing! </translate> * {{Z|Z24876}} * {{Z|Z24880}} * {{Z|Z24884}} * {{Z|Z24846}} * {{Z|Z24849}} * {{Z|Z24901}} <translate> <!--T:31--> A [<tvar name="1">https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest</tvar> complete list of all functions sorted by when they were created] is available. </translate> [[Category:Status updates{{#translation:}}|2025-06-06]] fk2vw4o0ge3if8w2grdg7l5kf5we49i Translations:Wikifunctions:Status updates/2025-06-06/4/en 1198 58087 191474 191311 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191474 wikitext text/x-wiki We are currently running [[$1|a consultation about the location of Abstract Content for Abstract Wikipedia]]. I am extremely thankful to the many thoughtful contributions to that consultation. I have to admit that I started with an opinion about what would be the best answer, but in internal discussions before the consultation I had changed my mind, and with the arguments and points raised in the consultation, I am changing my mind again. jdim1tjek8bj2ba1yfrk7wgkjwgsvfv Translations:Wikifunctions:Status updates/2025-06-06/17/en 1198 58100 191475 191324 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191475 wikitext text/x-wiki We have made more progress on the light-weight enum work ($1). We have re-built our internal Object search API to allow complex Type and return Type combinations ($2), and changed how we store details of what Objects' Type and return Type are, to allow us to model the lightweight enum Type-returning Function ($3). nmijmffsxr2pb2n8ok4mn8j7ru8vn16 Translations:Wikifunctions:Status updates/2025-06-06/18/en 1198 58101 191476 191325 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191476 wikitext text/x-wiki We fixed a tricky bug in our visual editor code noticed during the Hackathon last month that meant that checking the visual diff of your edit after making a change to an embedded Function call would delete it from the page ($1). We also fixed a bug in new, not-yet-deployed code that meant that the language dialog no longer searched for languages correctly ($2). msyjcbx9a85l8t18dd3xyfgvtptl5rr Translations:Wikifunctions:Status updates/2025-06-06/19/en 1198 58102 191477 191326 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191477 wikitext text/x-wiki We changed our visual editor integration code to consistently emit field updates on changes, rather than only in validation states, to allow any other forms of change to be consistent ($1). We also unified the styling of the "chips" for embedded Function call fragments, so they don't have different appearance or cause jumps when transitioning ($2). j013btuvo7hhsfqar9isxo14bcqw0au Translations:Wikifunctions:Status updates/2025-06-06/20/en 1198 58103 191478 191327 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191478 wikitext text/x-wiki We have fixed a series of issues related to font size, found as part of preparing for the upstream change of these in Codex last month. This includes in the accordion in the Function Metadata dialog ($1), in the Function report's icons on Implementation and Test case pages ($2), in the code editor ($3), in the expanded toggle control in complex Objects ($4), in the Function call component's icon sizes for the Function call, argument references, and Wikidata entities ($5), in the "empty" bubble for the language of a ZMonoLingualString component ($6), in Type converters' empty states, and in a number of other areas we noticed that didn't have individual tasks. 0iltlfjlq81216g5x588n5fkdg2srek Translations:Wikifunctions:Status updates/2025-06-06/21/en 1198 58104 191479 191328 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191479 wikitext text/x-wiki We replaced our use of the mw.Uri utility with the browser-native URL API ($1), as our part of Wikimedia-wide work to deprecate the utility. mfh1rge8efxviluigyfq3xcw2mt6gcl Translations:Wikifunctions:Status updates/2025-06-06/22/en 1198 58105 191480 191329 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191480 wikitext text/x-wiki We've re-factored the code around the code that handles embedded Wikifunctions calls in wikitext, to move most of the cache access code into the isolated database access code, for easier reasoning and testing. We consolidated some of our code around publishing Implementation code, to avoid repeating ourselves and so any future feature changes or bug fixes will need to be done only once ($1). We also switched our uses of HTTP status codes out for a set of constants, for consistency ($2). qzukrsogdatp4yaddgw0u62q6iwlwog Translations:Wikifunctions:Status updates/2025-06-06/25/en 1198 58108 191481 191332 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191481 wikitext text/x-wiki The recording of the presentation ''[$1 Wikifunctions: how Wikidata powers language functions (and beyond)]'' by [[$2|David Martin]] and [[$3|Luca Martinelli]] at the [[$4|Wikidata and Sister Projects event]] is now [$1 available on YouTube]. tiy1u3602dcueot6y5f92at2qczard6 Translations:Wikifunctions:Status updates/2025-06-06/27/en 1198 58110 191482 191334 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191482 wikitext text/x-wiki The [[$1|recording of Monday’s Volunteers’ Corner]] is now available on Wikimedia Commons. We thank all volunteers who joined us, and wish you happy watching! 80hbclj30necce4r56bu1lrqjkjl2fv Translations:Wikifunctions:Status updates/2025-06-06/31/en 1198 58114 191483 191338 2025-06-08T09:06:41Z FuzzyBot 207 Importing a new version from external source 191483 wikitext text/x-wiki A [$1 complete list of all functions sorted by when they were created] is available. 3brx2nrk9em2es1j2gn59c2f6vecc1q Wikifunctions:Status updates/2025-06-06/en 4 58115 191484 191339 2025-06-08T09:06:43Z FuzzyBot 207 Updating to match new version of source page 191484 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Previous update | prev = 2025-05-29 | nextlabel = Next update | next = }} === Where will Abstract Content go? === We are currently running [[:meta:Special:MyLanguage/Abstract Wikipedia/Location of Abstract Content|a consultation about the location of Abstract Content for Abstract Wikipedia]]. I am extremely thankful to the many thoughtful contributions to that consultation. I have to admit that I started with an opinion about what would be the best answer, but in internal discussions before the consultation I had changed my mind, and with the arguments and points raised in the consultation, I am changing my mind again. Today, I want to give a quick overview of my current state of thinking. Note though that I am not making the decision alone, but that it will be a decision by several stakeholders within the movement. Originally, I was expecting Wikidata to be the natural host for long-form Abstract Content. But, among other arguments, that would increase the strain and technical challenges on Wikidata. The only two options I currently see for long-form Abstract Content are on Wikifunctions, or as an entirely new project. On Wikifunctions it would have the advantage that the creation and maintenance of functions would be located very close to the main user of these functions. With a new project it would have the advantage of cleanly separating the content from the technology, and the two communities could each govern themselves, with their own rules, administrators, and processes. One could argue that by having Abstract Content on Wikidata it would be close to the data which is expected to be heavily used. And whereas I think that is a good argument, the technical challenges mentioned above probably outweigh these. Personally, I think that we should stop thinking of the movement as 800 or 900 individual projects, but as one large project, but that’s a topic for a different time. Shoutout to the stewards, global sysops, and other cross-wiki supporters for their difficult and important global work! In addition to the repository of long-form Abstract Content, we will also help the Wikidata team introduce Wikifunctions references as a data type on Wikidata. This means that new properties can be created that point to a Wikifunctions object (put simply, Wikidata properties can have ZIDs as values). This will allow for a lot of flexibility in the future and pave the way for Abstract Descriptions, Abstract Glosses, or complex values and multilingual notes. In short: I think that it’s going to be either a new wiki or a new namespace on Wikifunctions. Both of these would be accompanied with a new datatype for Wikifunctions objects on Wikidata for use there. As a reminder on the process: we will be closing the consultation next week. Everyone is still invited to add further arguments afterwards, but we won’t be actively tracking and following the page after that point, and anything that comes in later might be missed when considering the answer. We aim to come to a conclusion in the next few weeks, after the consultation period ends, and then to create a plan in the following quarter on how to implement the decision, and finally to implement that plan in the following quarters. I want to express my gratitude to everyone who has contributed to this process so far, and I am looking forward to the comments in the final week of the consultation! Thank you! ''P.S.:'' I understand that the consultation was not as multi-lingual as some have hoped for. We have heard your concerns. It was my decision to reach out to all projects, although we had inadequate translation coverage. We received some great input from members of smaller projects, for which I am thankful for. Note that this process isn’t a vote, and thus the goal is not to have full representation, but rather a consultation, and the idea is to hear many different arguments and ideas in order to help with the decision-making. Other consultations, votes, and Requests for Comments might have different requirements with regards to a multi-lingual outreach. === Recent Changes in the software === Last week was one of our once-every-two-months regular "Fix It Weeks", where we dedicate the team's time to fixing architectural issues, technical debt, and minor bugs we've noticed during development, though we also made some progress on Quarterly work. We have made more progress on the light-weight enum work ([[:phab:T390558|T390558]]). We have re-built our internal Object search API to allow complex Type and return Type combinations ([[:phab:T394712|T394712]]), and changed how we store details of what Objects' Type and return Type are, to allow us to model the lightweight enum Type-returning Function ([[:phab:T391915|T391915]]). We fixed a tricky bug in our visual editor code noticed during the Hackathon last month that meant that checking the visual diff of your edit after making a change to an embedded Function call would delete it from the page ([[:phab:T393319|T393319]]). We also fixed a bug in new, not-yet-deployed code that meant that the language dialog no longer searched for languages correctly ([[:phab:T395469|T395469]]). We changed our visual editor integration code to consistently emit field updates on changes, rather than only in validation states, to allow any other forms of change to be consistent ([[:phab:T395540|T395540]]). We also unified the styling of the "chips" for embedded Function call fragments, so they don't have different appearance or cause jumps when transitioning ([[:phab:T395547|T395547]]). We have fixed a series of issues related to font size, found as part of preparing for the upstream change of these in Codex last month. This includes in the accordion in the Function Metadata dialog ([[:phab:T392703|T392703]]), in the Function report's icons on Implementation and Test case pages ([[:phab:T392707|T392707]]), in the code editor ([[:phab:T392711|T392711]]), in the expanded toggle control in complex Objects ([[:phab:T392704|T392704]]), in the Function call component's icon sizes for the Function call, argument references, and Wikidata entities ([[:phab:T392706|T392706]]), in the "empty" bubble for the language of a ZMonoLingualString component ([[:phab:T392700|T392700]]), in Type converters' empty states, and in a number of other areas we noticed that didn't have individual tasks. We replaced our use of the mw.Uri utility with the browser-native URL API ([[:phab:T394820|T394820]]), as our part of Wikimedia-wide work to deprecate the utility. We've re-factored the code around the code that handles embedded Wikifunctions calls in wikitext, to move most of the cache access code into the isolated database access code, for easier reasoning and testing. We consolidated some of our code around publishing Implementation code, to avoid repeating ourselves and so any future feature changes or bug fixes will need to be done only once ([[:phab:T357696|T357696]]). We also switched our uses of HTTP status codes out for a set of constants, for consistency ([[:phab:T394746|T394746]]). We, along with all Wikimedia-deployed code, are now using the latest version of the Codex UX library, v2.0.0, as of this week. We believe that there should be no user-visible changes on Wikifunctions, so please comment on the Project chat or file a Phabricator task if you spot an issue. === Recording of presentation at Wikidata and Sister Project === The recording of the presentation ''[https://www.youtube.com/live/7oKb0DoYEag Wikifunctions: how Wikidata powers language functions (and beyond)]'' by [[User:DMartin (WMF)|David Martin]] and [[User:Sannita (WMF)|Luca Martinelli]] at the [[:d:Special:MyLanguage/Event:Wikidata and Sister Projects|Wikidata and Sister Projects event]] is now [https://www.youtube.com/live/7oKb0DoYEag available on YouTube]. === Recording of last Volunteers’ Corner available === The [[:commons:File:Abstract Wikipedia Volunteer Corner 2025-06.webm|recording of Monday’s Volunteers’ Corner]] is now available on Wikimedia Commons. We thank all volunteers who joined us, and wish you happy watching! === Fresh Functions weekly: 14 new Functions === This week we had 14 new functions. Here is a sample of the new functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing! * {{Z|Z24876}} * {{Z|Z24880}} * {{Z|Z24884}} * {{Z|Z24846}} * {{Z|Z24849}} * {{Z|Z24901}} A [https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest complete list of all functions sorted by when they were created] is available. [[Category:Status updates{{#translation:}}|2025-06-06]] rfq6wc5pe29mtqu1cs1cfu0mom2vjt5 Wikifunctions:Status updates/2025-06-06/pt-br 4 58118 191485 191392 2025-06-08T09:06:42Z FuzzyBot 207 Updating to match new version of source page 191485 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Atualização anterior | prev = 2025-05-29 | nextlabel = Próxima atualização | next = }} <span id="Where_will_Abstract_Content_go?"></span> === Para onde irá o Conteúdo Abstrato? === No momento, estamos realizando [[:meta:Abstract Wikipedia/Location of Abstract Content|uma consulta sobre a localização do Conteúdo Abstrato para a Wikipédia Abstrata]]. Sou extremamente grato às muitas contribuições atenciosas para essa consulta. Tenho que admitir que comecei com uma opinião sobre qual seria a melhor resposta, mas em discussões internas antes da consulta mudei de ideia e, com os argumentos e pontos levantados na consulta, estou mudando de ideia novamente. Hoje, quero dar uma rápida visão geral do meu estado atual de pensamento. Observe, porém, que não estou tomando a decisão sozinho, mas que ela será uma decisão de várias partes interessadas do movimento. Originalmente, eu esperava que o Wikidata fosse a “casa” para o Conteúdo Abstrato de formato longo. Mas, entre outros argumentos, isso aumentaria a tensão e os desafios técnicos do Wikidata. As duas únicas opções que vejo atualmente para o conteúdo abstrato de formato longo são a Wikifunctions ou um projeto totalmente novo. Na Wikifunctions, a vantagem seria que a criação e a manutenção das funções estariam localizadas muito perto do usuário principal dessas funções. Com um novo projeto, haveria a vantagem de separar claramente o conteúdo da tecnologia, e as duas comunidades poderiam se autogovernar, com suas próprias regras, administradores e processos. Poder-se-ia argumentar que, com o Conteúdo Abstrato no Wikidata, ele estaria próximo dos dados que se espera que sejam muito usados. E, embora eu ache que esse seja um bom argumento, os desafios técnicos mencionados acima provavelmente superam esses desafios. Pessoalmente, acho que deveríamos parar de pensar no movimento como 800 ou 900 projetos individuais, mas sim como um grande projeto, mas esse é um assunto para outro momento. Parabéns aos ''stewards'', administradores globais e outros apoiadores do conceito ''cross-wiki'' por seu difícil e importante trabalho global! Além do repositório de Conteúdo Abstrato de formato longo, também ajudaremos a equipe do Wikidata a introduzir referências da Wikifunctions como um tipo de dados no Wikidata. Isso significa que podem ser criadas novas propriedades que apontem para um objeto da Wikifunctions (simplificando, as propriedades do Wikidata podem ter ZIDs como valores). Isso permitirá muita flexibilidade no futuro e abrirá caminho para Descrições Abstratas, Glossários Abstratos ou valores complexos e notas multilíngues. <div lang="en" dir="ltr" class="mw-content-ltr"> In short: I think that it’s going to be either a new wiki or a new namespace on Wikifunctions. Both of these would be accompanied with a new datatype for Wikifunctions objects on Wikidata for use there. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> As a reminder on the process: we will be closing the consultation next week. Everyone is still invited to add further arguments afterwards, but we won’t be actively tracking and following the page after that point, and anything that comes in later might be missed when considering the answer. We aim to come to a conclusion in the next few weeks, after the consultation period ends, and then to create a plan in the following quarter on how to implement the decision, and finally to implement that plan in the following quarters. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> I want to express my gratitude to everyone who has contributed to this process so far, and I am looking forward to the comments in the final week of the consultation! Thank you! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ''P.S.:'' I understand that the consultation was not as multi-lingual as some have hoped for. We have heard your concerns. It was my decision to reach out to all projects, although we had inadequate translation coverage. We received some great input from members of smaller projects, for which I am thankful for. Note that this process isn’t a vote, and thus the goal is not to have full representation, but rather a consultation, and the idea is to hear many different arguments and ideas in order to help with the decision-making. Other consultations, votes, and Requests for Comments might have different requirements with regards to a multi-lingual outreach. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Recent Changes in the software === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Last week was one of our once-every-two-months regular "Fix It Weeks", where we dedicate the team's time to fixing architectural issues, technical debt, and minor bugs we've noticed during development, though we also made some progress on Quarterly work. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We have made more progress on the light-weight enum work ([[:phab:T390558|T390558]]). We have re-built our internal Object search API to allow complex Type and return Type combinations ([[:phab:T394712|T394712]]), and changed how we store details of what Objects' Type and return Type are, to allow us to model the lightweight enum Type-returning Function ([[:phab:T391915|T391915]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We fixed a tricky bug in our visual editor code noticed during the Hackathon last month that meant that checking the visual diff of your edit after making a change to an embedded Function call would delete it from the page ([[:phab:T393319|T393319]]). We also fixed a bug in new, not-yet-deployed code that meant that the language dialog no longer searched for languages correctly ([[:phab:T395469|T395469]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We changed our visual editor integration code to consistently emit field updates on changes, rather than only in validation states, to allow any other forms of change to be consistent ([[:phab:T395540|T395540]]). We also unified the styling of the "chips" for embedded Function call fragments, so they don't have different appearance or cause jumps when transitioning ([[:phab:T395547|T395547]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We have fixed a series of issues related to font size, found as part of preparing for the upstream change of these in Codex last month. This includes in the accordion in the Function Metadata dialog ([[:phab:T392703|T392703]]), in the Function report's icons on Implementation and Test case pages ([[:phab:T392707|T392707]]), in the code editor ([[:phab:T392711|T392711]]), in the expanded toggle control in complex Objects ([[:phab:T392704|T392704]]), in the Function call component's icon sizes for the Function call, argument references, and Wikidata entities ([[:phab:T392706|T392706]]), in the "empty" bubble for the language of a ZMonoLingualString component ([[:phab:T392700|T392700]]), in Type converters' empty states, and in a number of other areas we noticed that didn't have individual tasks. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We replaced our use of the mw.Uri utility with the browser-native URL API ([[:phab:T394820|T394820]]), as our part of Wikimedia-wide work to deprecate the utility. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We've re-factored the code around the code that handles embedded Wikifunctions calls in wikitext, to move most of the cache access code into the isolated database access code, for easier reasoning and testing. We consolidated some of our code around publishing Implementation code, to avoid repeating ourselves and so any future feature changes or bug fixes will need to be done only once ([[:phab:T357696|T357696]]). We also switched our uses of HTTP status codes out for a set of constants, for consistency ([[:phab:T394746|T394746]]). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> We, along with all Wikimedia-deployed code, are now using the latest version of the Codex UX library, v2.0.0, as of this week. We believe that there should be no user-visible changes on Wikifunctions, so please comment on the Project chat or file a Phabricator task if you spot an issue. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Recording of presentation at Wikidata and Sister Project === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The recording of the presentation ''[https://www.youtube.com/live/7oKb0DoYEag Wikifunctions: how Wikidata powers language functions (and beyond)]'' by [[User:DMartin (WMF)|David Martin]] and [[User:Sannita (WMF)|Luca Martinelli]] at the [[:d:Special:MyLanguage/Event:Wikidata and Sister Projects|Wikidata and Sister Projects event]] is now [https://www.youtube.com/live/7oKb0DoYEag available on YouTube]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Recording of last Volunteers’ Corner available === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The [[:commons:File:Abstract Wikipedia Volunteer Corner 2025-06.webm|recording of Monday’s Volunteers’ Corner]] is now available on Wikimedia Commons. We thank all volunteers who joined us, and wish you happy watching! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 14 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 14 new functions. Here is a sample of the new functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing! </div> * {{Z|Z24876}} * {{Z|Z24880}} * {{Z|Z24884}} * {{Z|Z24846}} * {{Z|Z24849}} * {{Z|Z24901}} <div lang="en" dir="ltr" class="mw-content-ltr"> A [https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest complete list of all functions sorted by when they were created] is available. </div> [[Category:Status updates{{#translation:}}|2025-06-06]] fh73l3kd9gcwy6ca556ctzmb3utu6q6 Z24946 0 58129 191410 191409 2025-06-07T12:14:25Z Dv103 11127 191410 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24946" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z23976", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z23976( Z23976K1 ) {\n\tconst input=Z23976K1;\n\tconst separators=[\" \",\"\\t\",\"/\",\"\\\\\",\"'\",'\"',\"|\"];\n\tconst prefOptions=[\"yemd\",\"eymd\",\"dmye\",\"dmey\",\"mdye\",\"mdey\",\"yedm\",\"eydm\",];\n\n\tfunction languageSpecificOptions(){\n\n\t\tdefineLiterals({\n\t\t\tad:1n,\n\t\t\tbc:-1n,\n\t\t\tbce:-1n,\n\t\t\tce:1n,\n\t\t},ERA);\n\t\t\n\t\t/// ADD HERE THE LANGUAGE-SPECIFIC OPTIONS\n\t}\n\n\tconst DAY =0;\n\tconst MONTH=1;\n\tconst YEAR=2;\n\tconst ERA=3;\n\n\tconst BEFORE=10;\n\tconst AFTER=20;\n\tconst BEFORE_OR_AFTER=30;\n\n\tconst LENIENT=true;\n\tconst NORMAL=false;\n\n\tfunction defineLiterals(literals,meaning,compMode=LENIENT, forced=false){\n\t\tlet bestGuess=null;\n\t\tconst compFunc= compMode==LENIENT ? lenientComp : lessLenientComp;\n\t\tfor (let m in literals){\n\t\t\tlet target=m.split(\" \");\n\t\t\tlet ok=true;\n\t\t\tfor (let t=0; t\u003Ctarget.length; ++t){\n\t\t\t\tif (elements[iAtt+t]==undefined || !compFunc(elements[iAtt+t],target[t])){\n\t\t\t\t\tok=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ok){\n\t\t\t\tif (bestGuess == null || bestGuess[1]\u003Ctarget.length){\n\t\t\t\t\tbestGuess = [literals[m],target.length];\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\tfor (let m of meaning){\n\t\t\tswitch(m){\n\t\t\t\tcase 0: _day=bestGuess[0]; break;\n\t\t\t\tcase 1: _month=bestGuess[0]; break;\n\t\t\t\tcase 2: _year=bestGuess[0]; break;\n\t\t\t\tcase 3: _era=bestGuess[0]; break;\n\t\t\t}\n\t\t}\n\t\t_nSteps=bestGuess[1];\n\t\tif (forced){\n\t\t\t_forced=meaning;\n\t\t}\n\t\treturn true;\n\n\t}\n\tfunction defineLiteralFunction(f,meaning, forced=false){\n\t\tlet bestGuess=f(elements,iAtt);\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\tfor (let m of meaning){\n\t\t\tswitch(m){\n\t\t\t\tcase 0: _day=bestGuess[0]; break;\n\t\t\t\tcase 1: _month=bestGuess[0]; break;\n\t\t\t\tcase 2: _year=bestGuess[0]; break;\n\t\t\t\tcase 3: _era=bestGuess[0]; break;\n\t\t\t}\n\t\t}\n\t\t_nSteps=bestGuess[1];\n\t\tif (forced){\n\t\t\t_forced=meaning;\n\t\t}\n\t\treturn true;\n\t}\n\tfunction defineConstraint(literals, meaning, position, compMode=NORMAL){\n\n\t\tlet bestGuess=null;\n\t\tconst compFunc= compMode==LENIENT ? lenientComp : lessLenientComp;\n\t\tfor (let m of literals){\n\t\t\tlet target=m.split(\" \");\n\t\t\tlet ok=true;\n\t\t\tfor (let t=0; t\u003Ctarget.length; ++t){\n\t\t\t\tif (elements[iAtt+t]==undefined || !compFunc(elements[iAtt+t],target[t])){\n\t\t\t\t\tok=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ok){\n\t\t\t\tif (bestGuess == null || bestGuess\u003Ctarget.length){\n\t\t\t\t\tbestGuess = target.length;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\t\t\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\t\n\t\t_constraintsList.push({pos:possibilities.length, meaning:meaning, type: position});\n\n\t\t_nSteps=bestGuess;\n\t\t_isToBeIgnored=true;\n\t\treturn true;\n\t}\n\tfunction defineConstraintFunction(f,meaning,position){\n\n\t\tlet bestGuess=f(elements,iAtt);\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\t_constraintsList.push({pos:possibilities.length, meaning:meaning, type: position});\n\t\t_nSteps=bestGuess;\n\t\t_isToBeIgnored=true;\n\t\treturn true;\n\t}\n\n\tfunction lenientComp(a,b){\n\t\ta=a.toLowerCase().replaceAll(/,|\\.|;|:/g,\"\");\n\t\tb=b.toLowerCase();\n\t\tif (a==\"\") return false;\n\t\treturn a==b.substring(0,a.length);\n\t}\n\n\tfunction lessLenientComp(a,b){\n\t\ta=a.toLowerCase().replaceAll(/,|\\.|;|:/g,\"\");\n\t\tb=b.toLowerCase();\n\t\tif (a==\"\") return false;\n\t\treturn a==b;\n\t}\n\n\tfunction extractNumber(s){\n\t\tlet res=/-?[0-9]+/.exec(s);\n\t\tif (res!=null){\n\t\t\treturn BigInt(res);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tfunction forceToYear(s){\n\t\tlet res=(/-?\\+?[0-9]+/.exec(s))?.[0];\n\t\tif (res==null){\n\t\t\treturn false;\n\t\t}\n\t\t//Wikifunctions.Debug(res);\n\t\tif (res.length\u003E2) return true;\n\t\tif (res[0]==\"-\" || res[0]==\"+\") return true;\n\t\treturn false;\n\t}\n\n\t\n\n\tinput=input.replaceAll(/-|—|‒|–|—|⸺|⸺/g,\"-\");\n\n\tvar isoRegex=/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d)/;\n\tif (isoRegex.exec(input)){\n\t\tinput=input.split(\"T\")[0];\n\t\tvar list=input.split(/(?\u003C=.)-(?=.)/);\n\t\t//Wikifunctions.Debug(list);\n\t\treturn {\n\t\t\tK1: BigInt(list[0]),\n\t\t\tK2: list[1]-1n,\n\t\t\tK3: list[2]\n\t\t};\n\t}\n\n\tvar elements=[\"\"];\n\tfor (let i=0; i\u003Cinput.length;){\n\t\tlet s=separators.find((v)=\u003E input.substring(i,i+v.length)==v);\n\t\tif (s!==undefined){\n\t\t\tif(elements[elements.length-1]!=\"\")\n\t\t\t\telements.push(\"\");\n\t\t\ti+=s.length;\n\t\t\tcontinue;\n\t\t}\n\t\telements[elements.length-1]+=input[i++];\n\t}\n\tif(elements[elements.length-1]==\"\") elements.pop();\n\n\tif(elements.length\u003C3){\n\t\tlet elSeparato=[];\n\t\tfor (let i=0; i\u003Celements.length; ++i){\n\t\t\telSeparato.push(elements[i].split(\"-\"));\n\t\t}\n\t\telements=elSeparato.flat();\n\t}\n\t// Wikifunctions.Debug(elements);\n\n\tlet elSeparato=[];\n\tfor (let i=0; i\u003Celements.length; ++i){\n\t\telSeparato.push(/-?\\+?[0-9]+/.exec(elements[i]));\n\t\telSeparato.push(elements[i].split(/-?\\+?[0-9]+/));\n\t}\n\telSeparato=elSeparato.flat();\n\telements=elSeparato.filter((v)=\u003E(v!=null \u0026\u0026 v!=\"\"));\n\n\t//Wikifunctions.Debug(\"elements:\");\n\t//Wikifunctions.Debug(elements);\n\n\t//Order of possibilities: dmye\n\tvar possibilities=[];\n\n\tvar _constraintsList=[];\n\tvar _nSteps=1;\n\n\tfor(var iAtt=0; iAtt\u003Celements.length; iAtt+=_nSteps){\n\t\t_nSteps=1;\n\t\tlet n=extractNumber(elements[iAtt]);\n\t\tvar _day=null;\n\t\tvar _month=null;\n\t\tvar _year=null;\n\t\tvar _era=null;\n\t\tvar _forced=null;\n\t\tvar _isToBeIgnored=false;\n\n\t\t//////////\n\n\t\tlanguageSpecificOptions();\n\n\t\tlet p=[];\n\t\t//day\n\t\tp.push(_day ?? ((n!=null \u0026\u0026 n\u003E0n \u0026\u0026 n\u003C=31n) ? n : null));\n\t\t//month\n\t\tp.push(_month ?? ((n!=null \u0026\u0026 n\u003E0n \u0026\u0026 n\u003C=12n) ? n-1n :null));\n\t\t//year\n\t\tp.push(_year ?? n);\n\t\t//epoch\n\t\tp.push(_era);\n\n\t\tif (_forced!=null){\n\t\t\tfor (let j=0; j\u003C=3; ++j){\n\t\t\t\tif (_forced.find((v)=\u003E(v==j)) == undefined){\n\t\t\t\t\tp[j]=null;\t\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (forceToYear(elements[iAtt])){\n\t\t\tp[0]=null;\n\t\t\tp[1]=null;\n\t\t\tp[3]=null;\n\t\t}\n\n\t\tif (!_isToBeIgnored)\n\t\t\tpossibilities.push(p);\n\t}\n\t\n\n\tif (_constraintsList.length\u003E0){\n\t\tfor (let pAtt=0; pAtt\u003C possibilities.length; ++pAtt){\n\t\t\tfor (let c of _constraintsList){\n\t\t\t\tif ((c.type==AFTER \u0026\u0026 pAtt!=c.pos-1) ||\n\t\t\t\t (c.type==BEFORE \u0026\u0026 pAtt!=c.pos) ||\n\t\t\t\t (c.type==BEFORE_OR_AFTER \u0026\u0026 pAtt!=c.pos-1 \u0026\u0026 pAtt!=c.pos)){\n\t\t\t\t\tfor(let m of c.meaning){\n\t\t\t\t\t\tpossibilities[pAtt][m]=null;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpossibilities=possibilities.filter((v)=\u003E(v[0]!=null || v[1]!=null || v[2]!=null || v[3]!=null));\n\n\tfor (let i=0; i\u003CprefOptions.length; ++i){\n\t\tlet actPref=prefOptions[i];\n\t\tlet d,m,y,e;\n\t\tif (possibilities.length\u003C4) actPref=actPref.replace(\"e\",\"\");\n\t\tfor (let j=0; j\u003CactPref.length; ++j){\n\t\t\tswitch(actPref[j]){\n\t\t\t\tcase \"d\":{\n\t\t\t\t\td=possibilities[j]?.[0]; break;\n\t\t\t\t}\n\t\t\t\tcase \"m\":{\n\t\t\t\t\tm=possibilities[j]?.[1]; break;\n\t\t\t\t}\n\t\t\t\tcase \"y\":{\n\t\t\t\t\ty=possibilities[j]?.[2]; break;\n\t\t\t\t}\n\t\t\t\tcase \"e\":{\n\t\t\t\t\te=possibilities[j]?.[3];break;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (d!=null \u0026\u0026 m!=null \u0026\u0026 y!=null){\n\t\t\tlet year;\n\t\t\tif (e!=null){\n\t\t\t\tyear = e==-1n ? -(y\u003C0n ? -y : y)+1n : (y\u003C0n ? -y : y);\n\t\t\t} else{\n\t\t\t\tyear=y;\n\t\t\t}\n\n\t\t\t// Wikifunctions.Debug({\n\t\t\t// \tK3: d,\n\t\t\t// \tK2: m,\n\t\t\t// \tK1: year\n\t\t\t// });\n\n\t\t\treturn{\n\t\t\t\tK3: Number(d),\n\t\t\t\tK2: Number(m),\n\t\t\t\tK1: (year)\n\t\t\t};\n\t\t}\n\t}\n\n}\n" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "refactored code, mul, js" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Refactored to make it easier to adapt to other languages" } ] } } eharidmf60ffozz9y7yxs0g5q2qhtty 191411 191410 2025-06-07T12:18:17Z Dv103 11127 191411 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24946" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z23976", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z23976( Z23976K1 ) {\n\tvar input=Z23976K1;\n\tconst separators=[\" \",\"\\t\",\"/\",\"\\\\\",\"'\",'\"',\"|\"];\n\tconst prefOptions=[\"yemd\",\"eymd\",\"dmye\",\"dmey\",\"mdye\",\"mdey\",\"yedm\",\"eydm\",];\n\n\tfunction languageSpecificOptions(){\n\n\t\tdefineLiterals({\n\t\t\tad:1n,\n\t\t\tbc:-1n,\n\t\t\tbce:-1n,\n\t\t\tce:1n,\n\t\t},ERA);\n\t\t\n\t\t/// ADD HERE THE LANGUAGE-SPECIFIC OPTIONS\n\t}\n\n\tconst DAY =0;\n\tconst MONTH=1;\n\tconst YEAR=2;\n\tconst ERA=3;\n\n\tconst BEFORE=10;\n\tconst AFTER=20;\n\tconst BEFORE_OR_AFTER=30;\n\n\tconst LENIENT=true;\n\tconst NORMAL=false;\n\n\tfunction defineLiterals(literals,meaning,compMode=LENIENT, forced=false){\n\t\tlet bestGuess=null;\n\t\tconst compFunc= compMode==LENIENT ? lenientComp : lessLenientComp;\n\t\tfor (let m in literals){\n\t\t\tlet target=m.split(\" \");\n\t\t\tlet ok=true;\n\t\t\tfor (let t=0; t\u003Ctarget.length; ++t){\n\t\t\t\tif (elements[iAtt+t]==undefined || !compFunc(elements[iAtt+t],target[t])){\n\t\t\t\t\tok=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ok){\n\t\t\t\tif (bestGuess == null || bestGuess[1]\u003Ctarget.length){\n\t\t\t\t\tbestGuess = [literals[m],target.length];\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\tfor (let m of meaning){\n\t\t\tswitch(m){\n\t\t\t\tcase 0: _day=bestGuess[0]; break;\n\t\t\t\tcase 1: _month=bestGuess[0]; break;\n\t\t\t\tcase 2: _year=bestGuess[0]; break;\n\t\t\t\tcase 3: _era=bestGuess[0]; break;\n\t\t\t}\n\t\t}\n\t\t_nSteps=bestGuess[1];\n\t\tif (forced){\n\t\t\t_forced=meaning;\n\t\t}\n\t\treturn true;\n\n\t}\n\tfunction defineLiteralFunction(f,meaning, forced=false){\n\t\tlet bestGuess=f(elements,iAtt);\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\tfor (let m of meaning){\n\t\t\tswitch(m){\n\t\t\t\tcase 0: _day=bestGuess[0]; break;\n\t\t\t\tcase 1: _month=bestGuess[0]; break;\n\t\t\t\tcase 2: _year=bestGuess[0]; break;\n\t\t\t\tcase 3: _era=bestGuess[0]; break;\n\t\t\t}\n\t\t}\n\t\t_nSteps=bestGuess[1];\n\t\tif (forced){\n\t\t\t_forced=meaning;\n\t\t}\n\t\treturn true;\n\t}\n\tfunction defineConstraint(literals, meaning, position, compMode=NORMAL){\n\n\t\tlet bestGuess=null;\n\t\tconst compFunc= compMode==LENIENT ? lenientComp : lessLenientComp;\n\t\tfor (let m of literals){\n\t\t\tlet target=m.split(\" \");\n\t\t\tlet ok=true;\n\t\t\tfor (let t=0; t\u003Ctarget.length; ++t){\n\t\t\t\tif (elements[iAtt+t]==undefined || !compFunc(elements[iAtt+t],target[t])){\n\t\t\t\t\tok=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ok){\n\t\t\t\tif (bestGuess == null || bestGuess\u003Ctarget.length){\n\t\t\t\t\tbestGuess = target.length;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\t\t\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\t\n\t\t_constraintsList.push({pos:possibilities.length, meaning:meaning, type: position});\n\n\t\t_nSteps=bestGuess;\n\t\t_isToBeIgnored=true;\n\t\treturn true;\n\t}\n\tfunction defineConstraintFunction(f,meaning,position){\n\n\t\tlet bestGuess=f(elements,iAtt);\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\t_constraintsList.push({pos:possibilities.length, meaning:meaning, type: position});\n\t\t_nSteps=bestGuess;\n\t\t_isToBeIgnored=true;\n\t\treturn true;\n\t}\n\n\tfunction lenientComp(a,b){\n\t\ta=a.toLowerCase().replaceAll(/,|\\.|;|:/g,\"\");\n\t\tb=b.toLowerCase();\n\t\tif (a==\"\") return false;\n\t\treturn a==b.substring(0,a.length);\n\t}\n\n\tfunction lessLenientComp(a,b){\n\t\ta=a.toLowerCase().replaceAll(/,|\\.|;|:/g,\"\");\n\t\tb=b.toLowerCase();\n\t\tif (a==\"\") return false;\n\t\treturn a==b;\n\t}\n\n\tfunction extractNumber(s){\n\t\tlet res=/-?[0-9]+/.exec(s);\n\t\tif (res!=null){\n\t\t\treturn BigInt(res);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tfunction forceToYear(s){\n\t\tlet res=(/-?\\+?[0-9]+/.exec(s))?.[0];\n\t\tif (res==null){\n\t\t\treturn false;\n\t\t}\n\t\t//Wikifunctions.Debug(res);\n\t\tif (res.length\u003E2) return true;\n\t\tif (res[0]==\"-\" || res[0]==\"+\") return true;\n\t\treturn false;\n\t}\n\n\t\n\n\tinput=input.replaceAll(/-|—|‒|–|—|⸺|⸺/g,\"-\");\n\n\tvar isoRegex=/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d)/;\n\tif (isoRegex.exec(input)){\n\t\tinput=input.split(\"T\")[0];\n\t\tvar list=input.split(/(?\u003C=.)-(?=.)/);\n\t\t//Wikifunctions.Debug(list);\n\t\treturn {\n\t\t\tK1: BigInt(list[0]),\n\t\t\tK2: list[1]-1,\n\t\t\tK3: list[2]\n\t\t};\n\t}\n\n\tvar elements=[\"\"];\n\tfor (let i=0; i\u003Cinput.length;){\n\t\tlet s=separators.find((v)=\u003E input.substring(i,i+v.length)==v);\n\t\tif (s!==undefined){\n\t\t\tif(elements[elements.length-1]!=\"\")\n\t\t\t\telements.push(\"\");\n\t\t\ti+=s.length;\n\t\t\tcontinue;\n\t\t}\n\t\telements[elements.length-1]+=input[i++];\n\t}\n\tif(elements[elements.length-1]==\"\") elements.pop();\n\n\tif(elements.length\u003C3){\n\t\tlet elSeparato=[];\n\t\tfor (let i=0; i\u003Celements.length; ++i){\n\t\t\telSeparato.push(elements[i].split(\"-\"));\n\t\t}\n\t\telements=elSeparato.flat();\n\t}\n\t// Wikifunctions.Debug(elements);\n\n\tlet elSeparato=[];\n\tfor (let i=0; i\u003Celements.length; ++i){\n\t\tfor (let e of elements[i].matchAll(/(-?\\+?[0-9]+)?([^0-9]*)/g)){\n\t\t\telSeparato.push(e.splice(1))\n\t\t}\n\t\t// elSeparato.push(/-?\\+?[0-9]+/.exec(elements[i]));\n\t\t// elSeparato.push(elements[i].split(/-?\\+?[0-9]+/));\n\t}\n\telSeparato=elSeparato.flat();\n\telements=elSeparato.filter((v)=\u003E(v!=null \u0026\u0026 v!=\"\"));\n\n\t// Wikifunctions.Debug(\"elements:\");\n\t// Wikifunctions.Debug(elements);\n\n\t//Order of possibilities: dmye\n\tvar possibilities=[];\n\n\tvar _constraintsList=[];\n\tvar _nSteps=1;\n\n\tfor(var iAtt=0; iAtt\u003Celements.length; iAtt+=_nSteps){\n\t\t_nSteps=1;\n\t\tlet n=extractNumber(elements[iAtt]);\n\t\tvar _day=null;\n\t\tvar _month=null;\n\t\tvar _year=null;\n\t\tvar _era=null;\n\t\tvar _forced=null;\n\t\tvar _isToBeIgnored=false;\n\n\t\t//////////\n\n\t\tlanguageSpecificOptions();\n\n\t\tlet p=[];\n\t\t//day\n\t\tp.push(_day ?? ((n!=null \u0026\u0026 n\u003E0n \u0026\u0026 n\u003C=31n) ? n : null));\n\t\t//month\n\t\tp.push(_month ?? ((n!=null \u0026\u0026 n\u003E0n \u0026\u0026 n\u003C=12n) ? n-1n :null));\n\t\t//year\n\t\tp.push(_year ?? n);\n\t\t//epoch\n\t\tp.push(_era);\n\n\t\tif (_forced!=null){\n\t\t\tfor (let j=0; j\u003C=3; ++j){\n\t\t\t\tif (_forced.find((v)=\u003E(v==j)) == undefined){\n\t\t\t\t\tp[j]=null;\t\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (forceToYear(elements[iAtt])){\n\t\t\tp[0]=null;\n\t\t\tp[1]=null;\n\t\t\tp[3]=null;\n\t\t}\n\n\t\tif (!_isToBeIgnored)\n\t\t\tpossibilities.push(p);\n\t}\n\t\n\n\tif (_constraintsList.length\u003E0){\n\t\tfor (let pAtt=0; pAtt\u003C possibilities.length; ++pAtt){\n\t\t\tfor (let c of _constraintsList){\n\t\t\t\tif ((c.type==AFTER \u0026\u0026 pAtt!=c.pos-1) ||\n\t\t\t\t (c.type==BEFORE \u0026\u0026 pAtt!=c.pos) ||\n\t\t\t\t (c.type==BEFORE_OR_AFTER \u0026\u0026 pAtt!=c.pos-1 \u0026\u0026 pAtt!=c.pos)){\n\t\t\t\t\tfor(let m of c.meaning){\n\t\t\t\t\t\tpossibilities[pAtt][m]=null;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpossibilities=possibilities.filter((v)=\u003E(v[0]!=null || v[1]!=null || v[2]!=null || v[3]!=null));\n\n\tfor (let i=0; i\u003CprefOptions.length; ++i){\n\t\tlet actPref=prefOptions[i];\n\t\tlet d,m,y,e;\n\t\tif (possibilities.length\u003C4) actPref=actPref.replace(\"e\",\"\");\n\t\tfor (let j=0; j\u003CactPref.length; ++j){\n\t\t\tswitch(actPref[j]){\n\t\t\t\tcase \"d\":{\n\t\t\t\t\td=possibilities[j]?.[0]; break;\n\t\t\t\t}\n\t\t\t\tcase \"m\":{\n\t\t\t\t\tm=possibilities[j]?.[1]; break;\n\t\t\t\t}\n\t\t\t\tcase \"y\":{\n\t\t\t\t\ty=possibilities[j]?.[2]; break;\n\t\t\t\t}\n\t\t\t\tcase \"e\":{\n\t\t\t\t\te=possibilities[j]?.[3];break;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (d!=null \u0026\u0026 m!=null \u0026\u0026 y!=null){\n\t\t\tlet year;\n\t\t\tif (e!=null){\n\t\t\t\tyear = e==-1n ? -(y\u003C0n ? -y : y)+1n : (y\u003C0n ? -y : y);\n\t\t\t} else{\n\t\t\t\tyear=y;\n\t\t\t}\n\n\t\t\t// Wikifunctions.Debug({\n\t\t\t// \tK3: d,\n\t\t\t// \tK2: m,\n\t\t\t// \tK1: year\n\t\t\t// });\n\n\t\t\treturn{\n\t\t\t\tK3: Number(d),\n\t\t\t\tK2: Number(m),\n\t\t\t\tK1: (year)\n\t\t\t};\n\t\t}\n\t}\n\n}\n" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "refactored code, mul, js" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Refactored to make it easier to adapt to other languages" } ] } } 1vwdl35jn8vjnmkilttgrp05qseyz5k Z24947 0 58130 191412 2025-06-07T12:22:42Z Dv103 11127 191412 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24947" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z23961", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z23961( Z23961K1 ) {\n\tvar input=Z23961K1;\n\tconst separators=[\" \",\"\\t\",\"/\",\"\\\\\",\"'\",'\"',\"|\"];\n\tconst prefOptions=[\"dmye\",\"yemd\",\"yedm\",\"mdye\"];\n\n\tfunction languageSpecificOptions(){\n\n\t\tdefineLiterals({\n\t\t\tac:-1n,\n\t\t\tdc:1n,\n\t\t\taec:-1n,\n\t\t\tec:1n,\n\t\t\tad:1n,\n\t\t\tbc:-1n,\n\t\t\tbce:-1n,\n\t\t\tce:1n,\n\t\t},ERA);\n\t\t\n\t\tdefineLiterals({\n\t\t\tgennaio:0n,\n\t\t\tfebbraio:1n,\n\t\t\tmarzo:2n,\n\t\t\taprile:3n,\n\t\t\tmaggio:4n,\n\t\t\tgiugno:5n,\n\t\t\tluglio:6n,\n\t\t\tagosto:7n,\n\t\t\tsettembre:8n,\n\t\t\tottobre:9n,\n\t\t\tnovembre:10n,\n\t\t\tdicembre:11n\n\t\t}, MONTH);\n\t\t\n\t}\n\n\tconst DAY =0;\n\tconst MONTH=1;\n\tconst YEAR=2;\n\tconst ERA=3;\n\n\tconst BEFORE=10;\n\tconst AFTER=20;\n\tconst BEFORE_OR_AFTER=30;\n\n\tconst LENIENT=true;\n\tconst NORMAL=false;\n\n\tfunction defineLiterals(literals,meaning,compMode=LENIENT, forced=false){\n\t\tlet bestGuess=null;\n\t\tconst compFunc= compMode==LENIENT ? lenientComp : lessLenientComp;\n\t\tfor (let m in literals){\n\t\t\tlet target=m.split(\" \");\n\t\t\tlet ok=true;\n\t\t\tfor (let t=0; t\u003Ctarget.length; ++t){\n\t\t\t\tif (elements[iAtt+t]==undefined || !compFunc(elements[iAtt+t],target[t])){\n\t\t\t\t\tok=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ok){\n\t\t\t\tif (bestGuess == null || bestGuess[1]\u003Ctarget.length){\n\t\t\t\t\tbestGuess = [literals[m],target.length];\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\tfor (let m of meaning){\n\t\t\tswitch(m){\n\t\t\t\tcase 0: _day=bestGuess[0]; break;\n\t\t\t\tcase 1: _month=bestGuess[0]; break;\n\t\t\t\tcase 2: _year=bestGuess[0]; break;\n\t\t\t\tcase 3: _era=bestGuess[0]; break;\n\t\t\t}\n\t\t}\n\t\t_nSteps=bestGuess[1];\n\t\tif (forced){\n\t\t\t_forced=meaning;\n\t\t}\n\t\treturn true;\n\n\t}\n\tfunction defineLiteralFunction(f,meaning, forced=false){\n\t\tlet bestGuess=f(elements,iAtt);\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\tfor (let m of meaning){\n\t\t\tswitch(m){\n\t\t\t\tcase 0: _day=bestGuess[0]; break;\n\t\t\t\tcase 1: _month=bestGuess[0]; break;\n\t\t\t\tcase 2: _year=bestGuess[0]; break;\n\t\t\t\tcase 3: _era=bestGuess[0]; break;\n\t\t\t}\n\t\t}\n\t\t_nSteps=bestGuess[1];\n\t\tif (forced){\n\t\t\t_forced=meaning;\n\t\t}\n\t\treturn true;\n\t}\n\tfunction defineConstraint(literals, meaning, position, compMode=NORMAL){\n\n\t\tlet bestGuess=null;\n\t\tconst compFunc= compMode==LENIENT ? lenientComp : lessLenientComp;\n\t\tfor (let m of literals){\n\t\t\tlet target=m.split(\" \");\n\t\t\tlet ok=true;\n\t\t\tfor (let t=0; t\u003Ctarget.length; ++t){\n\t\t\t\tif (elements[iAtt+t]==undefined || !compFunc(elements[iAtt+t],target[t])){\n\t\t\t\t\tok=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ok){\n\t\t\t\tif (bestGuess == null || bestGuess\u003Ctarget.length){\n\t\t\t\t\tbestGuess = target.length;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\t\t\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\t\n\t\t_constraintsList.push({pos:possibilities.length, meaning:meaning, type: position});\n\n\t\t_nSteps=bestGuess;\n\t\t_isToBeIgnored=true;\n\t\treturn true;\n\t}\n\tfunction defineConstraintFunction(f,meaning,position){\n\n\t\tlet bestGuess=f(elements,iAtt);\n\t\tif (bestGuess==null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof(meaning)==\"number\"){\n\t\t\tmeaning=[meaning];\n\t\t}\n\t\t_constraintsList.push({pos:possibilities.length, meaning:meaning, type: position});\n\t\t_nSteps=bestGuess;\n\t\t_isToBeIgnored=true;\n\t\treturn true;\n\t}\n\n\tfunction lenientComp(a,b){\n\t\ta=a.toLowerCase().replaceAll(/,|\\.|;|:/g,\"\");\n\t\tb=b.toLowerCase();\n\t\tif (a==\"\") return false;\n\t\treturn a==b.substring(0,a.length);\n\t}\n\n\tfunction lessLenientComp(a,b){\n\t\ta=a.toLowerCase().replaceAll(/,|\\.|;|:/g,\"\");\n\t\tb=b.toLowerCase();\n\t\tif (a==\"\") return false;\n\t\treturn a==b;\n\t}\n\n\tfunction extractNumber(s){\n\t\tlet res=/-?[0-9]+/.exec(s);\n\t\tif (res!=null){\n\t\t\treturn BigInt(res);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tfunction forceToYear(s){\n\t\tlet res=(/-?\\+?[0-9]+/.exec(s))?.[0];\n\t\tif (res==null){\n\t\t\treturn false;\n\t\t}\n\t\t//Wikifunctions.Debug(res);\n\t\tif (res.length\u003E2) return true;\n\t\tif (res[0]==\"-\" || res[0]==\"+\") return true;\n\t\treturn false;\n\t}\n\n\t\n\n\tinput=input.replaceAll(/-|—|‒|–|—|⸺|⸺/g,\"-\");\n\n\tvar isoRegex=/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d)|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d)/;\n\tif (isoRegex.exec(input)){\n\t\tinput=input.split(\"T\")[0];\n\t\tvar list=input.split(/(?\u003C=.)-(?=.)/);\n\t\t//Wikifunctions.Debug(list);\n\t\treturn {\n\t\t\tK1: BigInt(list[0]),\n\t\t\tK2: list[1]-1,\n\t\t\tK3: list[2]\n\t\t};\n\t}\n\n\tvar elements=[\"\"];\n\tfor (let i=0; i\u003Cinput.length;){\n\t\tlet s=separators.find((v)=\u003E input.substring(i,i+v.length)==v);\n\t\tif (s!==undefined){\n\t\t\tif(elements[elements.length-1]!=\"\")\n\t\t\t\telements.push(\"\");\n\t\t\ti+=s.length;\n\t\t\tcontinue;\n\t\t}\n\t\telements[elements.length-1]+=input[i++];\n\t}\n\tif(elements[elements.length-1]==\"\") elements.pop();\n\n\tif(elements.length\u003C3){\n\t\tlet elSeparato=[];\n\t\tfor (let i=0; i\u003Celements.length; ++i){\n\t\t\telSeparato.push(elements[i].split(\"-\"));\n\t\t}\n\t\telements=elSeparato.flat();\n\t}\n\t// Wikifunctions.Debug(elements);\n\n\tlet elSeparato=[];\n\tfor (let i=0; i\u003Celements.length; ++i){\n\t\tfor (let e of elements[i].matchAll(/(-?\\+?[0-9]+)?([^0-9]*)/g)){\n\t\t\telSeparato.push(e.splice(1))\n\t\t}\n\t\t// elSeparato.push(/-?\\+?[0-9]+/.exec(elements[i]));\n\t\t// elSeparato.push(elements[i].split(/-?\\+?[0-9]+/));\n\t}\n\telSeparato=elSeparato.flat();\n\telements=elSeparato.filter((v)=\u003E(v!=null \u0026\u0026 v!=\"\"));\n\n\t// Wikifunctions.Debug(\"elements:\");\n\t// Wikifunctions.Debug(elements);\n\n\t//Order of possibilities: dmye\n\tvar possibilities=[];\n\n\tvar _constraintsList=[];\n\tvar _nSteps=1;\n\n\tfor(var iAtt=0; iAtt\u003Celements.length; iAtt+=_nSteps){\n\t\t_nSteps=1;\n\t\tlet n=extractNumber(elements[iAtt]);\n\t\tvar _day=null;\n\t\tvar _month=null;\n\t\tvar _year=null;\n\t\tvar _era=null;\n\t\tvar _forced=null;\n\t\tvar _isToBeIgnored=false;\n\n\t\t//////////\n\n\t\tlanguageSpecificOptions();\n\n\t\tlet p=[];\n\t\t//day\n\t\tp.push(_day ?? ((n!=null \u0026\u0026 n\u003E0n \u0026\u0026 n\u003C=31n) ? n : null));\n\t\t//month\n\t\tp.push(_month ?? ((n!=null \u0026\u0026 n\u003E0n \u0026\u0026 n\u003C=12n) ? n-1n :null));\n\t\t//year\n\t\tp.push(_year ?? n);\n\t\t//epoch\n\t\tp.push(_era);\n\n\t\tif (_forced!=null){\n\t\t\tfor (let j=0; j\u003C=3; ++j){\n\t\t\t\tif (_forced.find((v)=\u003E(v==j)) == undefined){\n\t\t\t\t\tp[j]=null;\t\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (forceToYear(elements[iAtt])){\n\t\t\tp[0]=null;\n\t\t\tp[1]=null;\n\t\t\tp[3]=null;\n\t\t}\n\n\t\tif (!_isToBeIgnored)\n\t\t\tpossibilities.push(p);\n\t}\n\t\n\n\tif (_constraintsList.length\u003E0){\n\t\tfor (let pAtt=0; pAtt\u003C possibilities.length; ++pAtt){\n\t\t\tfor (let c of _constraintsList){\n\t\t\t\tif ((c.type==AFTER \u0026\u0026 pAtt!=c.pos-1) ||\n\t\t\t\t (c.type==BEFORE \u0026\u0026 pAtt!=c.pos) ||\n\t\t\t\t (c.type==BEFORE_OR_AFTER \u0026\u0026 pAtt!=c.pos-1 \u0026\u0026 pAtt!=c.pos)){\n\t\t\t\t\tfor(let m of c.meaning){\n\t\t\t\t\t\tpossibilities[pAtt][m]=null;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpossibilities=possibilities.filter((v)=\u003E(v[0]!=null || v[1]!=null || v[2]!=null || v[3]!=null));\n\n\tfor (let i=0; i\u003CprefOptions.length; ++i){\n\t\tlet actPref=prefOptions[i];\n\t\tlet d,m,y,e;\n\t\tif (possibilities.length\u003C4) actPref=actPref.replace(\"e\",\"\");\n\t\tfor (let j=0; j\u003CactPref.length; ++j){\n\t\t\tswitch(actPref[j]){\n\t\t\t\tcase \"d\":{\n\t\t\t\t\td=possibilities[j]?.[0]; break;\n\t\t\t\t}\n\t\t\t\tcase \"m\":{\n\t\t\t\t\tm=possibilities[j]?.[1]; break;\n\t\t\t\t}\n\t\t\t\tcase \"y\":{\n\t\t\t\t\ty=possibilities[j]?.[2]; break;\n\t\t\t\t}\n\t\t\t\tcase \"e\":{\n\t\t\t\t\te=possibilities[j]?.[3];break;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (d!=null \u0026\u0026 m!=null \u0026\u0026 y!=null){\n\t\t\tlet year;\n\t\t\tif (e!=null){\n\t\t\t\tyear = e==-1n ? -(y\u003C0n ? -y : y)+1n : (y\u003C0n ? -y : y);\n\t\t\t} else{\n\t\t\t\tyear=y;\n\t\t\t}\n\n\t\t\t// Wikifunctions.Debug({\n\t\t\t// \tK3: d,\n\t\t\t// \tK2: m,\n\t\t\t// \tK1: year\n\t\t\t// });\n\n\t\t\treturn{\n\t\t\t\tK3: Number(d),\n\t\t\t\tK2: Number(m),\n\t\t\t\tK1: (year)\n\t\t\t};\n\t\t}\n\t}\n\n\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "leggi data gregoriana italiana, refactored, js" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "read Gregorian date, refactored, it, js" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9wrt00p1sx00uf8jcjhbzxo3eqf019e Z24948 0 58131 191414 2025-06-07T15:36:57Z Denny 81 191414 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24948" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24948K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date" } ] } } ], "Z8K2": "Z20159", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z24948" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year from calendar date" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } r4aeu3oy8mz47texolqghwcamw0d93g 191419 191414 2025-06-07T15:41:12Z Denny 81 Added Z24949, Z24950, Z24951 and Z24952 to the approved list of test cases 191419 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24948" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24948K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date" } ] } } ], "Z8K2": "Z20159", "Z8K3": [ "Z20", "Z24949", "Z24950", "Z24951", "Z24952" ], "Z8K4": [ "Z14" ], "Z8K5": "Z24948" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year from calendar date" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } k0wn8lmswbeonszseobrbcem9jy4cpy 191421 191419 2025-06-07T15:42:49Z Denny 81 Added Z24953 to the approved list of implementations 191421 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24948" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24948K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date" } ] } } ], "Z8K2": "Z20159", "Z8K3": [ "Z20", "Z24949", "Z24950", "Z24951", "Z24952" ], "Z8K4": [ "Z14", "Z24953" ], "Z8K5": "Z24948" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year from calendar date" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 434soowcreigr9ijqbh8mxnzjcnbar7 191423 191421 2025-06-07T15:44:02Z Denny 81 Added Z24954 to the approved list of implementations 191423 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24948" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24948K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date" } ] } } ], "Z8K2": "Z20159", "Z8K3": [ "Z20", "Z24949", "Z24950", "Z24951", "Z24952" ], "Z8K4": [ "Z14", "Z24953", "Z24954" ], "Z8K5": "Z24948" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year from calendar date" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } svcuzr9wuciw3rl5g4ewqhbhtxlqbih 191425 191423 2025-06-07T15:44:47Z Denny 81 Added Z24955 to the approved list of implementations 191425 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24948" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24948K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date" } ] } } ], "Z8K2": "Z20159", "Z8K3": [ "Z20", "Z24949", "Z24950", "Z24951", "Z24952" ], "Z8K4": [ "Z14", "Z24953", "Z24954", "Z24955" ], "Z8K5": "Z24948" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year from calendar date" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2nrtsuo8ul7ogf6on4enj1y5of0dbkt Z24949 0 58132 191415 2025-06-07T15:37:49Z Denny 81 191415 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24949" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24948", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2025" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16106" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "7" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20166", "Z20166K2": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2025" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "7 June 2025" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } gqwqb0vndzb4lk8uc7lqua240zheqdi Z24950 0 58133 191416 2025-06-07T15:39:12Z Denny 81 191416 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24950" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24948", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "13411" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "6" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20166", "Z20166K2": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "13411" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "13411 AD" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } lo6zxikg980f0ojmbml97x037mi7hca Z24951 0 58134 191417 2025-06-07T15:40:06Z Denny 81 191417 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24951" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24948", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17815" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "6" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "24" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20166", "Z20166K2": { "Z1K1": "Z20159", "Z20159K1": "Z17815", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "6" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "24 Dec 6 BC" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } f0pis0i4yjtlhkvknk4w93198ca2fox Z24952 0 58135 191418 2025-06-07T15:40:59Z Denny 81 191418 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24952" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24948", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24948", "Z24948K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17815" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "7777777" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16107" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "7" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20166", "Z20166K2": { "Z1K1": "Z20159", "Z20159K1": "Z17815", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "7777777" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "7777777 BC" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qqg9z38lfj0f8uyutzgwpfdh804c4s9 Z24953 0 58136 191420 2025-06-07T15:42:38Z Denny 81 191420 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24953" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z24948", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z20420K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z24948K1" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value by key - Z20420K1" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ppgyisxrcimjd0gfpykt2cqfod6k7v3 Z24954 0 58137 191422 2025-06-07T15:43:52Z Denny 81 191422 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24954" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z24948", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z24948( Z24948K1 ) {\n\treturn Z24948K1.K1;\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "return .K1" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hvm1gln3qnghtv9x9qot7lsom3vygan Z24955 0 58138 191424 2025-06-07T15:44:33Z Denny 81 191424 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24955" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z24948", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z24948(Z24948K1):\n\treturn Z24948K1['K1']" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "return ['K1']" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ngaxcf3gl0908nccyuz9a2485abpyvt Z24956 0 58139 191431 2025-06-07T16:35:25Z Denny 81 191431 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24956" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20440", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20440", "Z20440K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16102" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "28" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16102" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "29" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "28 Feb 2000 -\u003E 29 Feb" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jbacsccbh50ownji6us7wp8zjfkxb08 Z24957 0 58140 191433 2025-06-07T16:36:35Z Denny 81 191433 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24957" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20440", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20440", "Z20440K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "4000000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "4000001" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "4M AD" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } tw4j8hfyk0635qyftffdcsbvynt53em Z24958 0 58141 191436 2025-06-07T16:50:39Z Dv103 11127 191436 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24958" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z20750", "Z20750K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" }, "Z20750K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 19d8yx3bzfv55dqwgbb91f0zg5l625k 191438 191436 2025-06-07T16:51:21Z Dv103 11127 191438 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24958" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20440", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z20750", "Z20750K1": { "Z1K1": "Z18", "Z18K1": "Z20440K1" }, "Z20750K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "using Moving N days, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } mqejenwanv6t3b9m3hnpem796e7szkb Z24959 0 58142 191439 2025-06-07T16:57:25Z Dv103 11127 191439 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24959" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20750", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20750", "Z20750K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16102" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "28" } } }, "Z20750K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16102" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "29" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "28/2/2000 +1 = 29/2/2000" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } f05hc8w0yb5nwexurboy397eykivgfi Z24960 0 58143 191441 2025-06-07T17:02:19Z Dv103 11127 191441 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24960" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20440", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20440", "Z20440K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "10000000000000000000000000000000000000000000000000000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "10000000000000000000000000000000000000000000000000000" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "2" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "very big year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } nxvlz7nnhurk74vuiowv3cb0xyjswm1 Z24961 0 58144 191446 2025-06-07T17:08:43Z Denny 81 191446 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24961" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20440", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20440", "Z20440K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2001" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16102" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "28" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2001" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16103" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "28 Feb 2001 -\u003E 1 Mar" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } pamjz6tmgxw6ihzgobzehdda8t1vt1p Z24962 0 58145 191449 2025-06-07T17:16:52Z Denny 81 191449 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24962" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20342", "Z17K2": "Z24962K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day of year" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z20159", "Z17K2": "Z24962K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z24962" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date from day of year and year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } prw75n0zm3w5gc8gciwljnvwf75hsh2 191454 191449 2025-06-07T17:19:26Z Denny 81 Added Z24963 and Z24964 to the approved list of test cases 191454 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24962" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20342", "Z17K2": "Z24962K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day of year" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z20159", "Z17K2": "Z24962K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z24963", "Z24964" ], "Z8K4": [ "Z14" ], "Z8K5": "Z24962" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date from day of year and year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8sydc961k12b8howpu5a6wskl0fcjd7 191457 191454 2025-06-07T17:21:00Z Denny 81 Added Z24965 to the approved list of implementations 191457 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24962" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20342", "Z17K2": "Z24962K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day of year" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z20159", "Z17K2": "Z24962K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "year" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z24963", "Z24964" ], "Z8K4": [ "Z14", "Z24965" ], "Z8K5": "Z24962" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "date from day of year and year" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 6heejkxnsv7pqzj4b9d4f4pmbpfnji6 Z24963 0 58146 191451 2025-06-07T17:18:12Z Denny 81 191451 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24963" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24962", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24962", "Z24962K1": { "Z1K1": "Z20342", "Z20342K1": "Z16101", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "15" } }, "Z24962K2": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2001" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2001" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "15" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Build 15 Jan 2001" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qu07qvwl1wj30ek1qxbaiqtaawwa76t Z24964 0 58147 191452 2025-06-07T17:18:45Z Denny 81 191452 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24964" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24962", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24962", "Z24962K1": { "Z1K1": "Z20342", "Z20342K1": "Z16111", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "22" } }, "Z24962K2": { "Z1K1": "Z20159", "Z20159K1": "Z17815", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "4500" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": "", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": "", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "22 Nov 4500 BC" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hjm5xtb5tfxph4h4q51pjhcg7xjekq3 191456 191452 2025-06-07T17:20:49Z Denny 81 191456 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24964" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24962", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24962", "Z24962K1": { "Z1K1": "Z20342", "Z20342K1": "Z16111", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "22" } }, "Z24962K2": { "Z1K1": "Z20159", "Z20159K1": "Z17815", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "4500" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17815" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "4500" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16111" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "22" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "22 Nov 4500 BC" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } pbpmsyhj971acquzziw881w3d9w9771 Z24965 0 58148 191455 2025-06-07T17:20:24Z Denny 81 191455 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24965" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z24962", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z801", "Z801K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z18", "Z18K1": "Z24962K2" }, "Z20420K2": { "Z1K1": "Z18", "Z18K1": "Z24962K1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "echo" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0io5itlqm5bykkl3xk2ksm5pt8dql9x Z24966 0 58149 191458 2025-06-07T18:33:02Z Dv103 11127 191458 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24966" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20750", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z20750(Z20750K1, Z20750K2):\n\tyear = Z20750K1[\"K1\"]\n\toffset = 0\n\tif year \u003E 9999:\n\t\toffset = ( year // 10000 ) * 10000\n\t\tyear = year % 10000\n\twhile year \u003C 1:\n\t\tyear += 4000\n\t\toffset -= 4000\n\timport datetime\n\td = datetime.date(year, Z20750K1[\"K2\"], Z20750K1[\"K3\"])\n\td = d + datetime.timedelta( days=Z20750K2 )\n\treturn {\n\t\t\"K1\": d.year + offset,\n\t\t\"K2\": d.month,\n\t\t\"K3\": d.day\n\t}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "using datetime.timedelta" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fguc4te7h4i4dmznowj3pkv9gw7ch2w Z24967 0 58150 191469 2025-06-07T19:02:34Z Dv103 11127 191469 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24967" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20750", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20750", "Z20750K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2021" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z20750K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16662" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2020" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno precedente a 1/1/2021" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9pjlz66dobb7d25e8zn7k02ijiwhf3e 191472 191469 2025-06-07T19:20:52Z WrenFalcon 12896 add english label 191472 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24967" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20750", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20750", "Z20750K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2021" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z20750K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16662" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2020" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "giorno precedente a 1/1/2021" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "1 Jan 2021 - 1 = 31 Dec 2020" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fjhz65qhcg8skng0671fdw9ep0foezp Z24968 0 58151 191486 2025-06-08T11:26:57Z 99of9 1622 191486 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24968" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24968K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starting day" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z24968" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "previous calendar day" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "previous day", "day before" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the previous day in the Gregorian proleptic calendar." } ] } } 9qid90z0wfc90fkvt5430bqdfyndpzg 191488 191486 2025-06-08T11:30:35Z 99of9 1622 Added Z24969 to the approved list of implementations 191488 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24968" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24968K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starting day" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z24969" ], "Z8K5": "Z24968" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "previous calendar day" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "previous day", "day before" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the previous day in the Gregorian proleptic calendar." } ] } } o4johe9o22nhjfrliquei2a89y5e2on 191490 191488 2025-06-08T11:31:43Z 99of9 1622 Added Z24970 to the approved list of test cases 191490 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24968" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24968K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starting day" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z24970" ], "Z8K4": [ "Z14", "Z24969" ], "Z8K5": "Z24968" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "previous calendar day" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "previous day", "day before" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the previous day in the Gregorian proleptic calendar." } ] } } f9ijv5c987ijroxd3gtloxy1pfl0cjt 191495 191490 2025-06-08T11:40:32Z 99of9 1622 Added Z24972 to the approved list of test cases 191495 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24968" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24968K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starting day" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z24970", "Z24972" ], "Z8K4": [ "Z14", "Z24969" ], "Z8K5": "Z24968" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "previous calendar day" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "previous day", "day before" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the previous day in the Gregorian proleptic calendar." } ] } } cb2mrlxwzovbfwtcmkg6gsg4qm2tr5r 191498 191495 2025-06-08T11:45:56Z 99of9 1622 Added Z24973 to the approved list of test cases 191498 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24968" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20420", "Z17K2": "Z24968K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starting day" } ] } } ], "Z8K2": "Z20420", "Z8K3": [ "Z20", "Z24970", "Z24972", "Z24973" ], "Z8K4": [ "Z14", "Z24969" ], "Z8K5": "Z24968" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "previous calendar day" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "previous day", "day before" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the date of the previous day in the Gregorian proleptic calendar." } ] } } asqcu1cfmn6lfv63bsa6589gcs87ca8 Z24969 0 58152 191487 2025-06-08T11:29:55Z 99of9 1622 191487 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24969" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z24968", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z24968(Z24968K1):\n\tyear = Z24968K1[\"K1\"]\n\toffset = 0\n\tif year \u003E 9999:\n\t\toffset = ( year // 10000 ) * 10000\n\t\tyear = year % 10000\n\twhile year \u003C 1:\n\t\tyear += 4000\n\t\toffset -= 4000\n\timport datetime\n\td = datetime.date(year, Z24968K1[\"K2\"], Z24968K1[\"K3\"])\n\td = d + datetime.timedelta( days=-1 )\n\treturn {\n\t\t\"K1\": d.year + offset,\n\t\t\"K2\": d.month,\n\t\t\"K3\": d.day\n\t}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "subtract datetime.timedelta" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "parallel to Z20444" } ] } } roglxr83kmdh10ium6kueisccz70sn3 191496 191487 2025-06-08T11:41:53Z 99of9 1622 protect from era change 191496 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24969" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z24968", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z610", "Z16K2": "def Z24968(Z24968K1):\n\tyear = Z24968K1[\"K1\"]\n\toffset = 0\n\tif year \u003E 9999:\n\t\toffset = ( year // 10000 ) * 10000\n\t\tyear = year % 10000\n\twhile year \u003C 2:\n\t\tyear += 4000\n\t\toffset -= 4000\n\timport datetime\n\td = datetime.date(year, Z24968K1[\"K2\"], Z24968K1[\"K3\"])\n\td = d + datetime.timedelta( days=-1 )\n\treturn {\n\t\t\"K1\": d.year + offset,\n\t\t\"K2\": d.month,\n\t\t\"K3\": d.day\n\t}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "subtract datetime.timedelta" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "parallel to Z20444" } ] } } 7tl062tformonw2erxt5erdpp0amue6 Z24970 0 58153 191489 2025-06-08T11:31:28Z 99of9 1622 191489 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24970" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24968", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24968", "Z24968K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2025" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2024" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day before 1 January 2025" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } m5ktnq2o8pmrfjb02fgea3pxsjnaw7x Z24971 0 58154 191492 2025-06-08T11:38:45Z 99of9 1622 191492 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24971" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20440", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20440", "Z20440K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17815" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "advance from BC to AD" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } mp0cjxjsuq10xp5583246td0zf7glr7 Z24972 0 58155 191494 2025-06-08T11:40:08Z 99of9 1622 191494 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24972" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24968", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24968", "Z24968K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17815" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16112" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "switch from AD to BC" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } szdxzf9vjbdumoe0uusok4oumbkukr6 Z24973 0 58156 191497 2025-06-08T11:45:37Z 99of9 1622 191497 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z24973" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z24968", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z24968", "Z24968K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2024" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16103" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20430", "Z20430K2": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": { "Z1K1": "Z17813", "Z17813K1": "Z17814" }, "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "2024" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16102" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "29" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day before 1 March 2024 is a leap day" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } j0n48omxeap91help649ks4ynq1pcgl