पृष्ठभूमि
कुछ छुट्टियां निश्चित, आसानी से याद रखने वाली तारीखें होती हैं, जैसे कि 31 अक्टूबर, 25 दिसंबर, आदि। हालांकि, कुछ लोग परेशान होना चाहते हैं। वे "सितंबर में पहला सोमवार" या "नवंबर में चौथा गुरुवार" जैसी चीजों के रूप में निर्दिष्ट हैं। मुझे यह कैसे पता होना चाहिए कि कब क्या है?
मुझे पता है कि थैंक्सगिविंग तेजी से आगे बढ़ रहा है, इसलिए मुझे यह पता लगाने के लिए एक कार्यक्रम की आवश्यकता है कि यह कब होगा। कुछ लोग यहां तक कहते हैं कि यह कल है , इसलिए आपके कार्यक्रम को यथासंभव कम करने की आवश्यकता है ताकि मैं यह सुनिश्चित कर सकूं कि यह समय में फिर से टाइप कर सकता है।
चुनौती
एक प्रोग्राम या फ़ंक्शन बनाएँ, जो एक अप-टू-चार-डिजिट वर्ष (जैसे 2015 या 1984) दिया गया हो, उस वर्ष संयुक्त राज्य अमेरिका के धन्यवाद के आउटपुट या रिटर्न देता है। धन्यवाद को विकिपीडिया पृष्ठ के अनुसार नवंबर के चौथे गुरुवार के रूप में परिभाषित किया गया है । (संकेत: उस पृष्ठ में दिनांक पैटर्न पर कुछ रोचक जानकारी भी शामिल है।)
इनपुट : एक दशमलव संख्या जिसमें अधिकतम चार अंक एक वर्ष में सामान्य युग (सीई) का प्रतिनिधित्व करते हैं। उदाहरण: 987, 1984, 2101
आउटपुट : वह महीना और दिन सहित, जिस दिन थैंक्सगिविंग गिर जाता है, या उस वर्ष मौजूद होने पर गिर जाता है। यह किसी भी उचित प्रारूप में हो सकता है; अपने सर्वोत्तम निर्णय का उपयोग करें। सभी मामलों में ग्रेगोरियन कैलेंडर का उपयोग करें, भले ही वह उस समय उपयोग में न हो।
(नोट: लीप वर्ष को सही ढंग से संभालना सुनिश्चित करें!)
परीक्षण के मामले
इनपुट 1:
2015
आउटपुट 1:
Nov 26
इनपुट 2:
1917
आउटपुट 2:
Nov 22
स्कोरिंग
प्रस्तुतियाँ बाइट्स में बनाई जाएंगी । मैं इस वेबसाइट को आपके बाइट काउंट पर नज़र रखने की सलाह देता हूँ , हालाँकि आप अपनी पसंद के किसी भी काउंटर का उपयोग कर सकते हैं।
बोनस
-25% अपने स्कोर के लिए यदि आप बीसीई तारीखों को नकारात्मक संख्या के रूप में संभालते हैं (जैसे -480 थर्मोपाइले की लड़ाई का वर्ष होगा)।
नकारात्मक परीक्षण केस इनपुट:
-480
संगत उत्पादन:
Nov 25
यह कोड-गोल्फ है , इसलिए सबसे कम स्कोर जीतता है!
संपादित करें: मैं थॉमस क्वा के TI-BASIC सबमिशन को चिह्नित कर रहा हूं। नई प्रविष्टियाँ सबमिट करने से आप इसे हतोत्साहित न करें!
लीडरबोर्ड
यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।
यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
# Language Name, N bytes
N
आपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes
यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:
# Perl, 43 + 2 (-p flag) = 45 bytes
आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=64785,OVERRIDE_USER=45162;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?([\d.]+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>