48
5
Challenge
You must output the current time continuously (until cancelled by an interrupt), once every second, by any of the following means:
- It must be in 24-hour or AM/PM format.
- If it is the former, it must be spaced out with colons (i.e. 15:47:36).
- If it is the latter, it must be spaced out with colons and have the AM/PM following (i.e. 3:47:36 PM)
- It may be pulled from the internet.
- It may be the system time.
- It must output any naturally accessible form of output which supports text that you choose.
- Output may have extra information aside of the time in it, but you must guarantee one, and only one, output of time per second.
- The continuous output must be a second apart - if you choose to wait until the second changes between outputs, that is fine. If you wait a second between each output, that is perfectly acceptable, despite the eventual loss of accuracy.
Since this is a catalog, languages created after this challenge are allowed to compete. Note that there must be an interpreter so the submission can be tested. It is allowed (and even encouraged) to write this interpreter yourself for a previously unimplemented language. Other than that, all the standard rules of code-golf must be obeyed. Submissions in most languages will be scored in bytes in an appropriate preexisting encoding (usually UTF-8).
Catalog
The Stack Snippet at the bottom of this post generates the catalog from the answers a) as a list of shortest solution per language and b) as an overall leaderboard.
To make sure that your answer shows up, please start your answer with a headline, using the following Markdown template:
## Language Name, N bytes
where N
is the size of your submission. If you improve your score, you can keep old scores in the headline, by striking them through. For instance:
## Ruby, <s>104</s> <s>101</s> 96 bytes
If there you want to include multiple numbers in your header (e.g. because your score is the sum of two files or you want to list interpreter flag penalties separately), make sure that the actual score is the last number in the header:
## Perl, 43 + 2 (-p flag) = 45 bytes
You can also make the language name a link which will then show up in the snippet:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=65020,OVERRIDE_USER=44713;function answersUrl(e){return"//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"//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;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>
Does "until cancelled by an interrupt" include closing the program or does it need a mechanism to stop the cycle coded into it? – user81655 – 2015-11-27T23:00:13.583
@user81655 Yes, it can be any form of interrupt - don't worry about coding that bit. – Addison Crump – 2015-11-27T23:01:51.090
Is it okay if your language's kernel automatically intercepts interrupts to show a debug menu? – LegionMammal978 – 2015-11-27T23:07:04.223
@LegionMammal978 Absolutely fine. Extra output doesn't really matter, as long as the program at some point continuously outputs time. – Addison Crump – 2015-11-27T23:11:24.220
@VoteToClose Does that mean my answer doesn't actually need the
substring
call? – SuperJedi224 – 2015-11-27T23:21:11.907@SuperJedi224 Absolutely correct. – Addison Crump – 2015-11-27T23:24:58.490
Also, if it is in fact allowed to print more than just the current time, you should explicitly say so in the question. – Dennis – 2015-11-28T03:49:14.107
Shall there be a tag [tag:catalog] for "Since this is a catalog, languages created after this challenge are allowed to compete."? – Vi. – 2015-11-28T06:02:53.740
1
@Vi. http://meta.codegolf.stackexchange.com/questions/6961/should-there-be-a-catalog-tag-e-g-shortest-in-every-language
– Mego – 2015-11-28T06:21:01.380Are we allowed to display something like
01:47:2
for01:47:02
? – lirtosiast – 2015-11-28T06:28:14.617@ThomasKwa I don't really see a problem with it, as it is human-readable as a time. – Addison Crump – 2015-11-28T11:09:58.947
From my Snap! answer, do I have to keep the wait 1 sec block? It's going to be still like 9:21:8...9:21:9... because unlike most other languages it doesn't keep whatever it said before. – ev3commander – 2015-11-29T14:03:55.587
@ev3commander If it's only one visible output per second, then that should be fine. – Addison Crump – 2015-11-29T18:54:58.203
Looking at your watch: 0 bytes ಠ_ಠ – Arcturus – 2015-12-16T02:41:30.980
May there be spaces between the parts and the colons?
12 : 23 : 34
– Adám – 2016-01-05T21:34:50.773@NBZ Yes, that's fine. – Addison Crump – 2016-01-05T22:36:11.047
1Warning: All
sleep 1
based answer break rule 5: you must guarantee one, and only one, output of time per second. !! – F. Hauri – 2016-05-17T23:03:59.8801F. Hauri: How so? Rule 6 says "If you wait a second between each output, that is fine as well." – YetiCGN – 2016-08-26T22:03:36.227
@VoteToClose Can I wait a second before the first output? – Erik the Outgolfer – 2017-01-07T09:42:03.580
@EriktheOutgolfer I don't see a reason to disallow it. – Addison Crump – 2017-01-07T10:18:38.440
@YetiCGN in single threaded solutions sleep needs to be tuned to compensate for the time elapsed looping and printing, else one of the printout valies will be skipped sooner or later. therefor breaking "must be one second apart" a "solution" that outpute 1000001 microseconds apart is not compliant so far as I can tell. – Jasen – 2017-01-07T11:28:57.203
@Jasen Please read the sixth rule, which provides an exception to that. – Addison Crump – 2017-01-07T12:22:48.660
rules six does not say "you may ignore the description and rule five and do this instead" it only says must... – Jasen – 2017-01-07T19:01:45.507
1@Jasen No, but the meaning of "that is fine" implies that the wait option is still valid, regardless of the eventual time loss. I have clarified this for you. – Addison Crump – 2017-01-07T19:07:32.213
the time of the first incorrect output is random therefore, program only has to output once! ??? – Jasen – 2017-01-07T19:12:19.103