यह एक वार्षिक कार्य है, ठीक है


22

संख्या 1 nn≤365 को देखते हुए, "दिन-संख्या महीना" प्रारूप में वर्ष का दूसरा दिन आउटपुट। उदाहरण के लिए, दिए गए 1, आपको "1 जनवरी" का उत्पादन करना चाहिए, बिना "का"।

ग्रेगोरियन कैलेंडर का उपयोग किया जाएगा और कार्यक्रम को लीप वर्षों तक खाते में नहीं होना चाहिए, इसलिए आपके कार्यक्रम को किसी भी परिस्थिति में "29 फरवरी" को कभी भी आउटपुट नहीं करना चाहिए। किसी भी विधि का उपयोग किया जा सकता है, जब तक कि वह "डे-नंबर मंथ" प्रारूप से पहले का उल्लेख नहीं करता है। आपके प्रोग्राम को सही ढंग से आउटपुट ऑर्डिनल्स भी चाहिए, जिसका अर्थ है कि यह हमेशा 1st, 2nd, 3rd, आउटपुट 1 होना चाहिए, 2 या 3 क्रमशः किसी भी इनपुट के लिए दिन की संख्या होनी चाहिए। अग्रणी स्थान या अन्य इंडेंटेशन की अनुमति है।

यह कोड गोल्फ है, इसलिए पात्रों द्वारा सबसे कम समाधान जीतता है।

परीक्षण के मामलों:

1 gives 1st January
2 gives 2nd January
3 gives 3rd January
365 gives 31st December
60 gives 1st March
11 gives 11th January

4
इसके अलावा, क्या आपको संख्या> 365 पर एक त्रुटि संदेश देने की आवश्यकता है? क्या प्रोग्राम केवल यह मान सकता है कि अमान्य इनपुट है और इसे संभालने की आवश्यकता नहीं है?
रा

5
जैसा कि हर कोई एक मूल अंग्रेजी बोलने वाला नहीं है, आप उस दिन की संख्या 11, 12 और 13 को "वें" में जोड़ना चाहते हैं, "1" में समाप्त होने वाली संख्या "सेंट", "2" को "एनडी", "3" मिल सकती है। "आरडी" प्राप्त करें, और अन्य सभी "वें" प्राप्त करें।
आदम

9
वाह, इतनी जल्दी जवाब स्वीकार नहीं करते। खासकर गलत जवाब नहीं !
आदम

6
आप कम से कम जोड़ना चाहिए 11(11 वें जनवरी) और 21(21 सेंट परीक्षण मामलों को जनवरी)।
अरनौलड

1
और जब आप परीक्षण मामलों को संपादित कर रहे हैं, तो शायद यह निर्दिष्ट करें कि आपका परीक्षण मामला प्रारूप क्या है। उत्तरदाताओं के एक जोड़े ने सोचा है कि 123=आवश्यक आउटपुट का हिस्सा था। या बस अपने परीक्षण के मामलों को संपादित करें जैसे कुछ पढ़ने के लिए: 365देता है31st December
Adám

जवाबों:


9

PHP ,38 40 30 28 बाइट्स

<?=date("jS F",86399*$argn);

इसे ऑनलाइन आज़माएं!

php -nFइनपुट के साथ रन से है STDIN। उदाहरण (ऊपर दी गई स्क्रिप्ट y.php):

$ echo 1|php -nF y.php
1st January
$ echo 2| php -nF y.php
2nd January
$ echo 3| php -nF y.php
3rd January
$ echo 11|php -nF y.php
11th January
$ echo 21|php -nF y.php
21st January
$ echo 60|php -nF y.php
1st March
$ echo 365|php -nF y.php
31st December

व्याख्या

day number * number of seconds per day(86400) गुणा करके 1970 में वांछित दिन (आसानी से एक लीप वर्ष नहीं) के लिए एक युगांतर टाइमस्टैम्प का निर्माण करें । हालाँकि, इससे एक दिन अधिक उत्पादन होगा, इसके बजाय number of seconds in a day - 1(86399) से गुणा करें जो इनपुट संख्या (165n will365) की सीमा के लिए प्रत्येक सही दिन के अंत के टाइमस्टैम्प के साथ होगा। तो बस उत्पादन के लिए PHP की अंतर्निहित तारीख स्वरूपण का उपयोग करें।


क्यों -nजरूरी है?
वेन

@ यह सभी मामलों में नहीं हो सकता है, लेकिन स्थानीय php.ini में किसी भी सेटिंग को अक्षम करता है जो असंगत व्यवहार पैदा कर सकता है।
640KB

6

जेली ,  79 78  77 बाइट्स

-1 बग फिक्सिंग :) (अनुक्रमणिका खोजने के लिए पूर्व-संक्रमण नहीं करना चाहिए, पोस्ट-रिवर्स करना चाहिए, लेकिन फिर हम सिर के बजाय पूंछ कर सकते हैं)
-1 प्रतिबिंब का उपयोग कर ( ⁽©ṅB+30_2¦2-> ⁽0ṗb4+28m0)

⁽0ṗb4+28m0SRṁRƲœiµṪȮ%30%20«4ị“nḄƲf⁷»s3¤Ṗ,ị“£ṢtẒ⁽ẹ½MḊxɲȧėAṅ ɓaṾ¥D¹ṀẏD8÷ṬØ»Ḳ¤$K

एक पूर्ण कार्यक्रम जो परिणाम प्रिंट करता है

इसे ऑनलाइन आज़माएं!

कैसे?

इसे बाद में अपडेट करेंगे ...

⁽©ṅB+30_2¦2SRṁRƲZœiµḢȮ%30%20«4ị“nḄƲf⁷»s3¤Ṗ,ị“...»Ḳ¤$K - Main Link: integer, n
⁽©ṅB+30_2¦2SRṁRƲZœi - f(n) to get list of integers, [day, month]
⁽©ṅ                 - compressed literal 2741
   B                - to a list of binary digits -> [ 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1]
    +30             - add thirty                    [31,30,31,30,31,30,31,31,30,31,30,31]
         ¦          - sparse application...
        2           - ...to indices: [2]
       _  2         - ...action: subtract two       [31,28,31,30,31,30,31,31,30,31,30,31]
               Ʋ    - last four links as a monad - i.e. f(x):
           S        -   sum x                       365
            R       -   range                       [1..365]
              R     -   range x (vectorises)        [[1..31],[1..28],...]
             ṁ      -   mould like                  [[1..31],[32..59],...]
                Z   - transpose                     [[1,32,...],[2,33,...],...]
                 œi - 1st multi-dimensional index of n  -> [day, month]

µḢȮ%30%20«4ị“nḄƲf⁷»s3¤Ṗ,ị“...»Ḳ¤$K - given [day, month] format and print
µ                                  - start a new monadic chain - i.e. f(x=[day, month])
 Ḣ                                 - head -- get the day leaving x as [month])
  Ȯ                                - print it (with no newline) and yield it
   %30                             - modulo by thirty
      %20                          - modulo by twenty
         «4                        - minimum of that and four
                     ¤             - nilad followed by link(s) as a nilad:
            “nḄƲf⁷»                -   dictionary words "standard"+" the" = "standard the"
                   s3              -   split into threes = ["sta","nda","rd ","the"]
           ị                       - index into
                      Ṗ            - remove rightmost character
                               ¤   - nilad followed by link(s) as a nilad:
                         “...»     -   dictionary words "January"+" February"+...
                              Ḳ    -   split at spaces = ["January","February",...]
                        ị          - index into (vectorises across [month])
                       ,           - pair                  e.g. ["th", ["February"]]
                                K  - join with spaces           ["th ", "February"]
                                   - print (implicitly smashes)   th February

4
"मानक" चाल अद्भुत है।
शुक्र

मैं @Ven के साथ सहमत हूँ , बहुत बढ़िया चाल! इसने मेरे 05AB1E उत्तर में "thstndrd"आकार 2 के हिस्सों में संपीड़ित स्ट्रिंग विभाजन की तुलना में एक बाइट को बचाया .•oθ2(w•2ô, इसलिए धन्यवाद। :)
केविन क्रूज़सेन

1
यह मेरे द्वारा देखे गए सबसे लंबे जेली कार्यक्रमों में से एक है।
JAD

6

सी # (विज़ुअल सी # इंटरएक्टिव कंपाइलर) , 115 113 109 98 बाइट्स

g=>$"{f=(g=p.AddDays(g-1)).Day}{"tsnr"[f=f%30%20<4?f%10:0]}{"htdd"[f]} {g:MMMM}";DateTime p;int f;

9 बाइट बचाने के लिए @someone को धन्यवाद

इसे ऑनलाइन आज़माएं!


1
@ केविनक्रूजसेन मुझे मॉडुलोस ऑर्डर से बाहर मिला, अब तय किया जाना चाहिए।
अज्ञानता

.code.tio(2,22): error CS0165: Use of unassigned local variable 'p'ऐसा प्रतीत होता है कि संरचनात्मक चीज़ काम नहीं करती है।
JAD

var g=new DateTime().AddDays(n-1)हालांकि काम करता है
JAD

@JAD की ओर से मेरी गलती, निश्चित
इग्नोरेंस का अवतार


5

पायथन 3.8 (पूर्व-रिलीज़) , 112 बाइट्स

lambda x:str(d:=(t:=gmtime(x*86399)).tm_mday)+'tsnrhtdd'[d%5*(d%30%20<4)::4]+strftime(' %B',t)
from time import*

इसे ऑनलाइन आज़माएं!

अजीब रूप से पर्याप्त है, मुझे पेरेंटेसाइज़ करने की ज़रूरत नहीं है d:=(t:=gmtime(~-x*86400), शायद इसलिए कि दुभाषिया केवल यह जांचता है ()कि असाइनमेंट एक्सप्रेशन के आस-पास के वर्ण हैं या नहीं कि एक्सप्रेशन स्वयं को कोष्ठबद्ध किया गया है।

-2 गॉव के लिए धन्यवाद ।
-5 एक्सनोर के लिए धन्यवाद ।


5

पर्ल 6 , 166 161 बाइट्स

{~(.day~(<th st nd rd>[.day%30%20]||'th'),<January February March April May June July August September October November December>[.month-1])}o*+Date.new(1,1,1)-1

इसे ऑनलाइन आज़माएं!

सभी महीने के नाम हार्डकोड, जो अधिकांश स्थान को ग्रहण करते हैं। यार, पर्ल 6 को वास्तव में एक उचित तिथि फ़ॉर्मेटर की आवश्यकता है।


4

हैक, 115 59 39 बाइट्स

$x==>date("jS F",mktime(0,0,0,1,$x));

चूँकि @gwaugh को गोल्फ के दौरान मेरा जैसा समाधान मिला, मैं हैक के बजाय इसे पोस्ट कर रहा हूँ :)।


वाह, महान दिमाग एक जैसा सोचते हैं। :) आपको +1 सर!
640KB

@ हंसो हाहा, मुझे नहीं पता था कि मैं सिर्फ एक शीर्ष-स्तरीय कार्यक्रम कर सकता हूं। मैं इसे उच्च-स्तरीय बनाने के लिए मेरा संपादन करूंगा, और बेहतर स्कोर ई पाने का रास्ता ढूंढूंगा ;-)
Ven

1
इसके बजाय @gwaugh मेड मेरा हैक।
वेन

1
आप शायद अपने mktime()कॉल को एक गैर-लीप वर्ष पैरामीटर निर्दिष्ट करना चाहते हैं अन्यथा यह लीप वर्ष पर चलने पर गलत आउटपुट वापस कर देगा। (मेरे जवाब के लिए क्या करना था)।
640KB

4

जावास्क्रिप्ट (ईएस 6),  117  113 बाइट्स

@ बाइट के लिए धन्यवाद 4 बाइट्स बचाए

d=>(n=(d=new Date(1,0,d)).getDate())+([,'st','nd','rd'][n%30%20]||'th')+' '+d.toLocaleString('en',{month:'long'})

इसे ऑनलाइन आज़माएं!

टिप्पणी की गई

d =>                     // d = input day
  ( n =                  //
    ( d =                // convert d to
      new Date(1, 0, d)  //   a Date object for the non leap year 1901
    ).getDate()          // save the corresponding day of month into n
  ) + (                  //
    [, 'st', 'nd', 'rd'] // ordinal suffixes
    [n % 30 % 20]        // map { 1, 2, 3, 21, 22, 23, 31 } to { 'st', 'nd', 'rd' }
    || 'th'              // or use 'th' for everything else
  ) + ' ' +              // append a space
  d.toLocaleString(      // convert d to ...
    'en',                // ... the English ...
    { month: 'long' }    // ... month name
  )                      //

बिना बिल्ट-इन, 188 बाइट्स

f=(d,m=0)=>d>(k=31-(1115212>>m*2&3))?f(d-k,m+1):d+([,'st','nd','rd'][d%30%20]||'th')+' '+`JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember`.match(/.[a-z]*/g)[m]

इसे ऑनलाइन आज़माएं!


प्रत्येक माह की 11 वीं, 12 वीं, 13 वीं
समाप्त

1
@ExpiredData इस रिपोर्ट के लिए धन्यवाद। अभी तय किया है।
अरनौलद

मेरी टिप्पणी पर ध्यान न दें, मैंने एक ID10T त्रुटि की।
21

मुझे यकीन नहीं है कि नोडज भाषा के टैग को कैसे संभालते हैं, लेकिन ऐसा लगता है 0कि यह उपयोग करने के रूप में काम करेगा "en"। और बदलने से toLocaleString4 बाइट्स बचेंगे। 110 बाइट्स
टीएच

@tsh ऐसा लगता है कि यह toLocaleStringसिस्टम डिफ़ॉल्ट सेटिंग्स का उपयोग कर रहा है जब यह एक अपरिचित स्ट्रिंग या एक संख्यात्मक मान पारित किया गया है। तो, यह कुछ भी हो सकता है। यह पैरामीटर मूल रूप से TIO उदाहरण पर अप्रभावी है, क्योंकि केवल अंग्रेजी स्थान वैसे भी स्थापित हैं
अरनुलद

4

स्मालटाक, 126 बाइट्स

d:=Date year:1day:n.k:=m:=d dayOfMonth.10<k&(k<14)and:[k:=0].o:={#st.#nd.#rd}at:k\\10ifAbsent:#th.m asString,o,' ',d monthName

1
मैं Smalltalk नहीं जानता, लेकिन क्या यह सही है 11th,12th,13th? यदि मैं सही ढंग से पढ़ता हूं तो आप दिन को 10 से विभाजित करते हैं, लेकिन इसका मतलब यह होगा कि इसका परिणाम 11st,12nd,13rdतब तक होगा , जब तक कि कोड में कुछ और इसे ठीक नहीं करता, जबकि मैं इससे अनजान हूं।
केविन क्रूज़सेन

@ केविनक्रूजसेन आप सही हैं। इस पर मेरा ध्यान आकर्षित करने के लिए धन्यवाद। मुझे इसे ठीक करने के लिए कुछ और बाइट्स खर्च करने होंगे।
लिएंड्रो कैनिग्लिया

1
@ केविनक्रूजसेन, हो गया। एक बार फिर धन्यवाद।
लिएंड्रो कैनिग्लिया

3

सी # (विजुअल सी # इंटरएक्टिव कंपाइलर) , 141 139 133 124 122 बाइट्स

a=>{var d=s.AddDays(a-1);int x=d.Day,m=x%30%20;return x+"thstndrd".Substring(m<4?m*2:0,2)+d.ToString(" MMMM");};DateTime s

के लिए धन्यवाद Arnauld 11,12,13th को हटाने 4 बाइट को बचाने के लिए तेजी से विधि के लिए

इसे ऑनलाइन आज़माएं!


C # 8 का उपयोग करते हुए, इसे कम किया जा सकता है: a=>{var d=s.AddDays(a-1);int x=d.Day,m=x%30%20;return x+"thstndrd"[(m<4?m*2:0)..2]+$" {d:MMMM}";};DateTime s इंटरेक्टिव कंपाइलर इस समय, हालांकि, इसके भाषा स्तर को "पूर्वावलोकन" में बदलने का समर्थन नहीं करता है।
19


मुझे पूरा यकीन है कि आपको DataTime s
इग्नोरेंस

3

आर , 158 134 बाइट्स

-24 बाइट्स @Nick कैनेडी को 'सेंट', 'एनडी', 'आरडी' और 'थ' को गोल्फ के लिए। धन्यवाद!

f=format;paste0(a<-as.double(f(d<-as.Date(scan(,''),'%j'),'%e')),`if`((a-1)%%10>2|a%/%10==1,'th',c("st","nd","rd")[a%%10]),f(d,' %B'))

इसे ऑनलाइन आज़माएं!


1
कैसे के बारे में tio.run/##HYxBCsIwEEWvIoEwMzDVRldi40K8hQgdmwQV20oSd949xm4e/… 134 बाइट्स के लिए
निक केनेडी

हां, मुझे `if`बेहतर सीखने की जरूरत है । धन्यवाद।
सीटी हॉल

3

MySQL, 47 45 42 बाइट्स

SELECT DATE_FORMAT(MAKEDATE(1,n),"%D %M")

1901 को किसी भी वर्ष से बदला जा सकता है जो कि एक लीप वर्ष नहीं है।

संपादित करें: रिक्त स्थान को हटाकर दो बाइट्स सहेजे गए और एक और तीन बाइट्स वर्ष में 1 में बदलकर, @Embodyment of Ignorance के लिए धन्यवाद ।


क्या आप 1901, nऔर स्ट्रिंग के बीच के रिक्त स्थान को हटा सकते हैं ?
इग्नोरेंस

@EmbodimentofIgnorance हाँ मैं कर सकता हूँ, धन्यवाद!
निकोलस बी

इसके अलावा, 1 की तरह 1901 को एक साल से क्यों नहीं बदला जाए? 1 एक लीप वर्ष नहीं है, और यह 3 बाइट्स छोटा है
अज्ञानता

@EmbodimentofIgnorance किया और किया :-)
निकोलस

3

05AB1E , 81 79 78 76 75 74 73 71 70 69 बाइट्स

•ΘÏF•ºS₂+.¥-D0›©ÏθDT‰ć≠*4šß„—ÊØ3ôsè¨ð”……‚應…ä†ï€¿…Ë…ê†Ä…æ…Ì…Í”#®OèJ

-9 बाइट्स @Grimy को धन्यवाद ।
-1 बाइट @ जोनाथनअल्लन की standard theचाल के लिए धन्यवाद th,st,nd,rd, जिसका उपयोग उन्होंने अपने जेली उत्तर में किया

इसे ऑनलाइन आज़माएं या सभी संभावित परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

•ΘÏF        # Push compressed integer 5254545
     º       # Mirror it vertically: 52545455454525
      S      # Converted to a list of digits: [5,2,5,4,5,4,5,5,4,5,4,5,2,5]
       ₂+    # And 26 to each: [31,28,31,30,31,30,31,31,30,31,30,31,28,31]
             # (the additional trailing 28,31 won't cause any issues)
           # Undelta this list (with automatic leading 0):
             #  [0,31,59,90,120,151,181,212,243,273,304,334,365,393,424]
  -          # Subtract each from the (implicit) input-integer
   D0       # Duplicate the list, and check for each if it's positive (> 0)
      ©      # Store the resulting list in the register (without popping)
       Ï     # Only leave the values at those truthy indices
        θ    # And get the last value from the list, which is our day
D            # Duplicate this day
 T          # Take the divmod-10 of this day: [day//10, day%10]
   ć         # Extract the head; pop and push the remainder-list and head: [day%10], day//10
            # Check whether the day//10 is NOT 1 (0 if day//10 == 1; 1 otherwise)
     *       # Multiply that by the [day%10] value
      4š     # Prepend a 4 to this list
        ß    # Pop and push the minimum of the two (so the result is one of [0,1,2,3,4],
             # where the values are mapped like this: 1..3→1..3; 4..9→4; 10..19→0; 20..23→0..3; 24..29→4; 30,31→0,1)
 thŠØ       # Push dictionary string "th standards"
      3ô     # Split it into parts of size 3: ["th ","sta","nda","rds"]
        sè   # Swap and index the integer into this list (4 wraps around to index 0)
          ¨  # And remove the trailing character from this string
ð            # Push a space " "
”……‚應…ä†ï€¿…Ë…ê†Ä…æ…Ì…Í”
             # Push dictionary string "December January February March April May June July August September October November"
 #           # Split on spaces
  ®          # Push the list of truthy/falsey values from the register again
   O         # Get the amount of truthy values by taking the sum
    è        # Use that to index into the string-list of months (12 wraps around to index 0)
J            # Join everything on the stack together to a single string
             # (and output the result implicitly)

क्यों समझने के लिए मेरा यह 05AB1E टिप देखें :

  • (अनुभाग शब्दकोश का उपयोग कैसे करें? ) ”……‚應…ä†ï€¿…Ë…ê†Ä…æ…Ì…Í”है"December January February March April May June July August September October November"
  • (अनुभाग शब्दकोश का उपयोग कैसे करें? ) …thŠØहै"th standards"
  • ( बड़ा पूर्णांक कैसे संपीड़ित करें? ) •ΘÏF•है5254545

1
: -2 5в28 + का उपयोग कर संपीड़न के लिए द्वारा बाइट्स TIO
ग्रिमी

1
S का उपयोग करना एक अच्छा विचार है, -1 बाइट फिर: TIO
ग्रिममी

1
@Grimy -1 बाइट के लिए धन्यवाद •EË7Óæ•S₂+, लेकिन आपका -3 गोल्फ दुर्भाग्य से काम नहीं करता है। इंडेक्सिंग स्वचालित रूप से 05AB1E में चारों ओर घूमती है, इसलिए यह 5st,6nd,7rd,25st,26nd,27rd,29stगलत होगा। पुनश्च: यदि यह काम किया होता, तो अतिरिक्त -1 के लिए हो सकता था । :)
केविन क्रूज़सेन

1
-1 फिर से ("मानक" के बजाय "मानक" का उपयोग करने की आवश्यकता को हटाता है Á)।
ग्रैमी

1
-1 ( •C.ñÒā•से •ΘÏF•º, अतिरिक्त अंक कोई फर्क नहीं पड़ता)
ग्रैमी

2

बैश, 82 80 बाइट्स

-2 बाइट्स @ ASCII- केवल के लिए धन्यवाद

a=(th st nd rd);set `printf "%(%e %B)T" $[$1*86399]`;echo $1${a[$1%30%20]-th} $2

TIO

बैश + जीएनयू तिथि, 77 बाइट्स

a=(th st nd rd);set `date -d@$[$1*86399] +%e\ %B`;echo $1${a[$1%30%20]-th} $2


@ ASCII- ही, हाँ प्रत्येक दिन के लिए 100 घटाना, 100 * 365 = 36500s जो एक दिन (86400) से कम है, 86399 (दिन से 1 सेकंड घटाना) के साथ भी काम करता है
नाहुएल फौउल

: / अभी भी वास्तव में लंबा लग रहा है, लेकिन अभी तक एक बेहतर तरीका नहीं मिला है
एएससीआईआई-केवल

2

शेल + कोरुटिल्स, 112 90 बाइट्स

date -d0-12-31\ $1day +%-dth\ %B|sed 's/1th/1st/;s/2th/2nd/;s/3th/3rd/;s/\(1.\).. /\1th /'

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण मामले शामिल हैं। संपादित करें: @NahuelFouilleul के लिए 22 बाइट्स धन्यवाद सहेजे गए। स्पष्टीकरण:

date -d0-12-31\ $1day

गैर-लीप वर्ष से पहले दिन के बाद दिन की संख्या की गणना करें। (अफसोस की बात है कि आप सापेक्ष तारीख की गणना नहीं कर सकते @-1।)

+%-dth\ %B|sed

महीने के दिन का उत्पादन (शून्य के बिना अग्रणी) th, और पूरे महीने का नाम।

's/1th/1st/;s/2th/2nd/;s/3th/3rd/;

ऊपर फिक्स 1st, 2nd, 3rd, 21st, 22nd, 23rdऔर 31st

s/\(1.\).. /\1th /'

को पुनर्स्थापित 11thकरें 13th


मैं मेरा के बाद इस उत्तर, बचा सकता है देखा 18bytes एक sed आदेश का उपयोग कर, यह भी sमें daysहटाया जा सकता है, और 19में1969
Nahuel Fouilleul

@NahuelFouilleul पिछले एक बैश-इस्म का उपयोग करता है इसलिए इसे एक अलग उत्तर के रूप में पोस्ट किया जाना चाहिए, लेकिन अन्य युक्तियों के लिए धन्यवाद!
नील

2

जेली , 115 114 101 97 बाइट्स

%30%20¹0<?4Ḥ+ؽị“thstndrd”ṭ
“5<Ḟ’b4+28ÄŻ_@µ>0T,>0$ƇZṪµ1ịị“£ṢtẒ⁽ẹ½MḊxɲȧėAṅ ɓaṾ¥D¹ṀẏD8÷ṬØ»Ḳ¤,2ịÇƊṚK

इसे ऑनलाइन आज़माएं!

जेली मानकों द्वारा लंबे, लेकिन पहले सिद्धांतों से किया गया।

स्ट्रिंग संपीड़न की बेहतर समझ के माध्यम से 13 बाइट को बचाने के लिए @ जोनाथन ऑलन का धन्यवाद।


“£ṢtẒ⁽ẹ½MḊxɲȧėAṅ ɓaṾ¥D¹ṀẏD8÷ṬØ»Ḳ¤13 को बचाएगा (कंप्रेस। एन्क्रिप्शन एक प्रमुख स्थान के लिए दिखता है और इसके लिए विशेष हैंडलिंग है)।
जोनाथन एलन


1

लाल , 124 बाइट्स

func[n][d: 1-1-1 + n - 1[rejoin[d/4 either 5 > t: d/4 % 30 % 20[pick[th st nd rd]t + 1]['th]]pick system/locale/months d/3]]

इसे ऑनलाइन आज़माएं!

nदिनांक बनाने के लिए 1 दिन से 1-1-1 (1-Jan-2001) जोड़ता है , महीने प्रत्यय में अनुक्रमित करने के लिए अर्नुल्ड की विधि का उपयोग करता है। बहुत बुरा लाल 1-अनुक्रमित है, इसके लिए अतिरिक्त ट्विकिंग की आवश्यकता होती है। अच्छी बात यह है कि रेड को महीनों के नाम पता हैं :)


1

एपीएल (एनएआरएस), 235 चार्ट, 470 बाइट्स

{k←↑⍸0<w←+\v←(1-⍵),(12⍴28)+13561787⊤⍨12⍴4⋄k<2:¯1⋄d←1+v[k]-w[k]⋄(⍕d),({d∊11..13:'th'⋄1=10∣d:'st'⋄2=10∣d:'nd'⋄3=10∣d:'rd'⋄'th'}),' ',(k-1)⊃(m≠' ')⊂m←'January February March April May June July August September October November December'}

13561787 वह संख्या है जिसे आधार 4 में (12ght28) से प्रत्येक की लंबन प्राप्त करने के लिए (...):

  f←{k←↑⍸0<w←+\v←(1-⍵),(12⍴28)+13561787⊤⍨12⍴4⋄k<2:¯1⋄d←1+v[k]-w[k]⋄(⍕d),({d∊11..13:'th'⋄1=10∣d:'st'⋄2=10∣d:'nd'⋄3=10∣d:'rd'⋄'th'}),' ',(k-1)⊃(m≠' ')⊂m←'January February March April May June July August September October November December'}     
  ⊃f¨1 2 3 365 60 11
1st January  
2nd January  
3rd January  
31st December
1st March    
11th January 


-2

पायथन 3 , 95 बाइट्स

इसे धिक्कार है: पी

from datetime import *;f=lambda s:(datetime(2019,1,1)+timedelta(days=s-1)).strftime("%d of %B")

इसे ऑनलाइन आज़माएं!


2
यह क्रमिक प्रत्ययों का उत्पादन नहीं करता है, और दिन की संख्या में अग्रणी शून्य है। यह ofभी अनावश्यक है
जो किंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.