Arka fon
Bazı tatiller, 31 Ekim, 25 Aralık, vb. Gibi sabit, hatırlaması kolay tarihlerdir. Ancak bazıları sıkıntılı olmak ister. "Eylül ayının ilk Pazartesi günü" veya "Kasım ayının dördüncü Perşembe" gibi şeyler olarak belirtiliyorlar. Bunun ne zaman olduğunu nasıl bilebilirim?
Tek bildiğim şükran gününün hızlı bir şekilde yaklaşmakta olduğu, bu yüzden ne zaman olduğunu anlamama yardımcı olacak bir programa ihtiyacım var. Bazı insanlar bile yarın olduğunu söylüyor, bu yüzden programınızın zamanında yeniden yazabilmem için mümkün olduğunca kısa olması gerekiyor.
Meydan okuma
Dört basamaklı bir yıla kadar (örneğin 2015 veya 1984) verilen, o yılki Birleşik Devletler Şükran Günü'nü veren veya veren bir program veya işlev oluşturun. Şükran günü , Wikipedia sayfasına göre Kasım ayının dördüncü Perşembe olarak tanımlanır . (İpucu: bu sayfa tarih düzeniyle ilgili bazı ilginç bilgiler de içerir.)
Giriş : Ortak Dönem'de (CE) bir yılı temsil eden maksimum dört basamaklı bir ondalık sayı. Örnekler: 987, 1984, 2101
Çıktı : Şükran Günü'nün o yıl içinde düştüğü veya varsa, ay ve günü içeren tarih. Bu herhangi bir makul formatta olabilir; En iyi kararını kullan. Gregorian Calendar'ı her durumda, o anda kullanılmamış olsa bile kullanın.
(Not: Artık yılların doğru kullanıldığından emin olun!)
Test senaryoları
Giriş 1:
2015
Çıkış 1:
Nov 26
Giriş 2:
1917
Çıkış 2:
Nov 22
puanlama
Gönderimler bayt olarak puanlanacaktır . Bu web sitesini , bayt sayınızı takip etmenizi öneririm , ancak istediğiniz herhangi bir sayacı kullanabilirsiniz.
Bonuslar
Eğer puanları BCE ile ele alırsanız puanınızın % -25'i negatif sayılardır (ör. -480, Thermopylae savaşının yılı olur).
Negatif test durum girişi:
-480
Karşılık gelen çıktı:
Nov 25
Bu kod golf , yani en düşük puan kazanır!
Düzenleme: Thomas Kwa'nın TI-BASIC gönderimini kabul edildi olarak işaretliyorum. Bunun sizi yeni girdiler göndermekten caydırmasına izin verme!
Liderler
Burada hem düzenli bir lider tablosu hem de kazananların dile göre bir genel bakışını oluşturmak için bir Stack Snippet'i var.
Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:
# Language Name, N bytes
Gönderinizin N
büyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Başlığınıza birden fazla sayı eklemek istiyorsanız (örneğin, puanınız iki dosyanın toplamı olduğundan veya tercüman bayrağı cezalarını ayrı ayrı listelemek istediğiniz için), gerçek puanın başlıktaki son sayı olduğundan emin olun :
# Perl, 43 + 2 (-p flag) = 45 bytes
Dil adını, daha sonra büyük afiş snippet'inde görünecek bir bağlantı da yapabilirsiniz:
# [><>](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>