Lý lịch
Một số ngày lễ có ngày cố định, dễ nhớ, như ngày 31 tháng 10, ngày 25 tháng 12, v.v ... Tuy nhiên, một số người muốn gây rắc rối. Chúng được chỉ định là những thứ như "Thứ Hai đầu tiên của tháng Chín" hoặc "Thứ Năm thứ tư trong tháng 11". Làm thế nào tôi phải biết khi đó là?
Tất cả những gì tôi biết là Lễ Tạ ơn đang đến rất nhanh, vì vậy tôi cần một chương trình để giúp tôi tìm ra khi nào có. Một số người thậm chí nói rằng đó là ngày mai , vì vậy chương trình của bạn cần phải ngắn nhất có thể để đảm bảo tôi có thể nhập lại kịp thời.
Các thách thức
Tạo một chương trình hoặc chức năng, được đưa ra một năm có bốn chữ số (ví dụ 2015 hoặc 1984), xuất hoặc trả về ngày Lễ Tạ ơn của Hoa Kỳ trong năm đó. Lễ Tạ ơn được định nghĩa là thứ Năm thứ tư của tháng 11 theo trang Wikipedia . (Gợi ý: trang đó cũng bao gồm một số thông tin thú vị về mẫu ngày.)
Đầu vào : một số thập phân có tối đa bốn chữ số biểu thị một năm trong Kỷ nguyên chung (CE). Ví dụ: 987, 1984, 2101
Đầu ra : ngày, bao gồm cả tháng và ngày, trong đó Lễ Tạ ơn rơi, hoặc sẽ rơi nếu nó tồn tại, trong năm đó. Điều này có thể ở bất kỳ định dạng hợp lý; sử dụng phán đoán tốt nhất của bạn. Sử dụng Lịch Gregorian trong mọi trường hợp, ngay cả khi nó không được sử dụng tại thời điểm đó.
(Lưu ý: Đảm bảo xử lý năm nhuận một cách chính xác!)
Các trường hợp kiểm tra
Đầu vào 1:
2015
Đầu ra 1:
Nov 26
Đầu vào 2:
1917
Đầu ra 2:
Nov 22
Chấm điểm
Đệ trình sẽ được tính bằng byte . Tôi khuyên bạn nên trang web này để theo dõi số byte của bạn, mặc dù bạn có thể sử dụng bất kỳ bộ đếm nào bạn muốn.
Tiền thưởng
-25% số điểm của bạn nếu bạn xử lý ngày BCE dưới dạng số âm (ví dụ -480 sẽ là năm của trận chiến Thermopylae).
Đầu vào trường hợp thử nghiệm âm tính:
-480
Đầu ra tương ứng:
Nov 25
Đây là môn đánh gôn , vì vậy điểm thấp nhất sẽ thắng!
Chỉnh sửa: Tôi đánh dấu bài nộp TI-BASIC của Thomas Kwa là được chấp nhận. Đừng để điều này ngăn cản bạn gửi bài mới!
Bảng xếp hạng
Dưới đây là một Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
# Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Nếu ở đó bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ phiên dịch), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề:
# Perl, 43 + 2 (-p flag) = 45 bytes
Bạn cũng có thể đặt tên ngôn ngữ thành liên kết sau đó sẽ hiển thị trong đoạn trích bảng xếp hạng:
# [><>](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>