var QUESTION_ID=57552,OVERRIDE_USER=42854;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>
yyyy-MM-dd hh:mm:ss UTC
oder spielt das Datumsformat keine Rolle?It's beer o'clock
, aber ich habe mich geweigert.12:32 PM
oder verwenden12:32PM
? Statt12:32p.m.
?Antworten:
Bash,
3933 BytesVerschwendete eine Reihe von Zeichen, weil die Spezifikation erfordert
a.m.
oderp.m.
währenddate
Ausgabenam
oderpm
. Vielen Dank an @DigitalTrauma für das Speichern von 6 Bytes!Dies ist möglicherweise nicht sehr portabel. Es funktioniert unter Ubuntu 15.04.
Eine Lösung, die in Ruby im Wesentlichen dieselbe Methode verwendet
, die überraschenderweise genau dieselbe Länge hat:Ruby, 39 Bytes
quelle
%P
Gibt mir AM oder PM in Großbuchstaben. Ich bin auf einem Mac, wenn es einen Unterschied macht.%P
Kleinbuchstaben und%p
Großbuchstaben an (was ein bisschen ... nicht intuitiv ist).date
(unter Linux et al.) Und * BSDdate
(wobei OSX eine BSD-Variante ist) haben völlig unterschiedliche Optionen und Verhaltensweisen, wenn Sie sich außerhalb des von POSIX festgelegten Funktionsumfangs bewegen. Vielleicht sollte in dieser Antwort speziell Bash unter Linux erwähnt werden. (Das giltsed
auch; diese spezielle Aufforderung ist jedoch fest in derecho -e "It's $(date +%I:%M%P)\b.m."
- Anstattsed
die Rücktaste zu verwenden. Sieht für mich nicht nach einer separaten Antwort aus. Ich habe auch keine am / pm, aber ich denke, es liegt am Gebietsschema.AppleScript, 198
Weil AppleScript. Weil warum nicht:
Das war schmerzhaft.
quelle
PHP,
3533 BytesVerwenden Sie das falsche Werkzeug für den Job!
Es wird einfach das
m
am Ende vonam
oder entferntpm
, um das Hinzufügen der Punkte zu ermöglichen. Das Datum kommt als00:00am
, undtrim
wird damit00:00a
.Alte Antwort (nur PHP 5.4+):
Dies funktioniert, weil Sie einen von einer Funktion zurückgegebenen Wert dereferenzieren können. Dies ist in PHP5.3 oder älter nicht möglich.
quelle
@
Operator zu verwenden und davon auszugehen, dass die Leute damit arbeiten werdenerror_reporting(0)
?Visual Basic 6 / VBA,
4241 BytesVerwenden von
MsgBox
, da VB6 keine Konsole hat (es sei denn, Sie unterbrechen die Verknüpfung, verknüpfen als ausführbare Konsolendatei, verwenden einige Windows-API-Hacks und erledigen andere zweifelhafte Aufgaben).quelle
m
durch.m.
? dhDebug.Print Replace(Format(Now,"hh:mm am/pm"),"m",".m.")
R
68,59626055(Dank an @ Alex.A. Und @flodel für die Kommentare) Nimmt die aktuelle Systemzeit (
Sys.time()
), formatiert sie korrekt mit einer%I:%M%P
Kombination, fügt am Ende einen Punkt hinzu und ersetzt denm
durch.m.
.quelle
Julia,
745443 BytesSie können es online ausprobieren !
Die
time()
Funktion gibt die aktuelle Uhrzeit zurück. Bei der Übergabe anstrftime
das Format%I:%M%P
ergibt sichHH:MMam/pm
, dass die Stunden im 12-Stunden- Format angegeben sind. Wir sichern ein Zeichen mit\b
, um das Zeichen zu entfernenm
, und lassen ein abschließendesa
oder am Endep
hängen.m.
.31 Bytes gespart dank Glen O!
quelle
print("It's ",strftime("%r%P",time())[[1:5,12]],".m.")
-%P
fügt Kleinbuchstaben am / pm hinzu, um den Vergleich und den Befehl split zu vermeiden.time()
)print(strftime("It's %I:%M%P",time())[1:11],".m.")
print(strftime("It's %I:%M%P\b.m.",time()))
Haskell, 135 Bytes
Ich fand eine viel amüsantere
main
, die fünf Bytes länger ist:Oder 66 Bytes unter Unix:
quelle
Pyth,
3836 Bytes2 Bytes gespart dank @Jakube!
quelle
MATLAB, 59 Bytes
Wenn zwischen Uhrzeit und vormittags / nachmittags ein Leerzeichen eingegeben werden darf, kann der Wert bis zu 52 Byte betragen :
quelle
05:38p.m.
\b
... Du brauchst übrigens einen zusätzlichen Platz.Perl 5.10+,
5862 BytesMuss mit dem
-M5.010
Kommandozeilen-Flag ausgeführt werden, um zu erhaltensay
.Ich habe in meiner ursprünglichen Lösung einige Randfälle nicht berücksichtigt (nämlich
00:**
und12:**
). Fix für 4 zusätzliche Bytes.Wie es funktioniert
Gibt im skalaren Kontext
localtime
eine Zeichenfolge wie die folgende zurück:Das Minutenfeld ist bereits mit Nullen aufgefüllt, wodurch einige Bytes gespeichert werden (im
localtime
Listenkontext werden Zahlen anstelle von Zeichenfolgen zurückgegeben, sodass Sie diese selbst auffüllen müssen).Hier ist es ungolfed:
Perl 5.14+, 57 Bytes
(Nur zum Spaß, da es die Regeln ein wenig ausdehnt.)
51 Bytes + 6 Bytes für
-MPOSIX
. Muss auch mit dem-M5.010
Kommandozeilen-Flag ausgeführt werden, um zu bekommensay
.Diese Lösung hängt von Ihrem Gebietsschema ab und funktioniert daher nicht auf allen Systemen. Es wird auch das POSIX-Modul verwendet, das möglicherweise die Definition eines "eingebauten" Moduls erweitert, obwohl es sich um ein Kernmodul handelt.
Perl 5.14+ ist für den zerstörungsfreien
r
Modifikator des Substitutionsoperators erforderlich . Eine äquivalente Lösung, die mit 5.10+ funktioniert, ist:Dies sind ebenfalls 57 Bytes (51 Bytes + 6 Bytes für
-MPOSIX
).quelle
Perl 5, 74 Bytes
Ein kleines Beispiel dafür, wie die Variablen von rechts nach links ausgewertet werden.
Verwendung von POSIX: 80 Bytes
Verwendung von POSIX mit Zeitabhängigkeit und Switches: 54 Byte (48 + 6)
Prüfung
quelle
-MPOSIX
stattuse POSIX;
, fällt die Pars in Ihrem Anrufstrftime
und Ersetzenprint
mitsay
(-M5.010
kostenlos ). Damit haben Sie Ihre letzte Lösung auf 54 Byte reduziert!-MPOSIX
(6 Bytes), aber Sie 2 Bytes durch Fallenlassen der Klammern speichern:$_=strftime"It's %I:%M%P",localtime;
. Das ergibt insgesamt 54 Byte, was immer noch besser ist als meine 57-Byte-POSIX-Lösung. Gut gemacht!CJam, 40 Bytes
Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
Mathematica
49 90 92 9084 Bytes-6 Bytes dank user202729
Die Lösung ist in Mathematica einfach, aber etwas wortreich.
quelle
StringReplace
kann beseitigt werden, sparen Sie 6 Bytes.(d=DateString)@{"It's ","Hour12",":","Minute"}<>d@"AMPM"/."AM"->"a.m."/."PM"->"p.m."
T-SQL (2012+),
67 bis65 ByteSQL Server 2012 hat uns endlich eine vernünftige Formatierungsfunktion für Daten gegeben. Ich musste immer noch mit der AM / PM rumspielen, um das richtige Format zu erhalten.
In früheren Versionen hätte es so etwas gebraucht (93 Bytes)
quelle
PHP, 49 Bytes
Wenn es nur
am/pm
statta.m./p.m.
...Ich habe viele unangenehme Bytes verwendet, um ein bisschen Länge zu sparen, also hier ist das Hex:
Lesbare Version:
quelle
C,
10394 BytesUngolfed
quelle
PHP, 41 Bytes
It's <?=strtr(date('g:ia'),['m'=>'.m.']);
Zum ersten Mal habe ich das gespielt. Ich bin mir nicht sicher, ob ich die vorherige PHP-Antwort (49 Byte) aktualisieren / bearbeiten oder einfach meine eigene hinzufügen soll ...
quelle
[m=>'.m.']
, was 2 Bytes spart. (Warnungen können ignoriert werden, machen Sie sich also keine Sorgen.)SQL (PostgreSQL),
4241 BytesEine andere SQL-Variante befindet sich jedoch in einer Abfrage.
Als Notiz arbeitet entweder pm oder am, um den am / pm-Teil zu erhalten. Die Formatierungsoptionen in PostgreSQL sind sehr flexibel. Danke an @manatwork für den Tipp, das zu verschieben
it's
in den Formatstring zu verschieben.SQLFiddle
quelle
+ time '12:00'
nach demnow()
in SQLFiddle hinzufügen, sollte es das am / pm ändern.select to_char(now(),'"It''s" HH:MIa.m.')
CJam, 43 Bytes
Wenn Sie die Zahlen mit Nullen auffüllen müssen, wird dies größer, als ich es gerne hätte. Am Ende war die Formatierung der Zeichenfolge der kürzeste Weg.
Probieren Sie es online aus .
Erläuterung
quelle
12:37
gibt es aus00:37
.Javascript, 103 Bytes
Javascript wird von der Konsole ausgeführt.
C #, 63 Bytes
C # aus dem unmittelbaren Fenster ausgeführt.
quelle
d.length
, du könntest einfach schreiben-n
und es wird vom Ende an gerechnet, nur eine FYI.d="It's "+new Date().toLocaleTimeString();d.slice(0,-6)+d.slice(-2,-1).toLowerCase()+'.m.'
90 Bytes. Und Sie können ein Byte speichern, indem Sie die"It's "
Zeichenfolge verschieben. Und ein paar Bytes von einer kleinen Zeichenkettenverknüpfung.d=new Date().toLocaleTimeString();"It's "+d.slice(0,5)+d[9].toLowerCase()+'.m.'
79 Bytes.toLocaleTimeString("en-US")
86 Bytes.Bash, 44 Zeichen
Pure Bash, nur Shell-Builtins, keine verdammten Utensilien.
Probelauf:
quelle
Powershell, 49 Bytes
(date).hour/23
scheint als Index für zu funktionieren,"ap"
da er auf0
Stunden unter 12 und1
über 12 gerundet wird.quelle
"It's $(date -f hh:mm)$("pa"[(date).hour-lt12]).m."
"{0:hh:mm}$("ap"[($d=date).hour/23]).m."-f$d
verpasst dasIt's
am Anfang. Wenn Sie das auf der Vorderseite"It's $((date -f hh:mm)+"ap"[(date).hour/23]).m."
date
[datetime]
Casts immer en-US . Das bedeutet, dass so etwas"It's $(("{0:h:mmt}"-f[datetime](date)).ToLower()).m."
möglich ist ... was zwar 54 Byte und länger ist als Ihre aktuelle Lösung, aber dennoch eine interessante Eigenart der Sprache ist.Gebietsschema-abhängig
Für Browserumgebungen, für die das Gebietsschema auf festgelegt ist
en-CA
oder ein anderes Gebietsschema festgelegt ist, das standardmäßig eine Zeit von 12 Stunden ausgibt:CoffeeScript, 81 Bytes
JavaScript (ES5), 90 Byte
Gebietsschema-unabhängig
CoffeeScript,
11396 BytesBisherige:
Dieser funktioniert in allen Browserumgebungen, unabhängig vom Gebietsschema. Erfordert Chrome 24+, Firefox 29+, IE 11+, Opera 15+ oder Derivate davon. Funktioniert nicht in Safari. Sehen
Intl.DateTimeFormat
.quelle
It's 2:59: m.m.
en-US
Swift -
124102 Bytesquelle
C 154 Bytes
Im Gegensatz zur anderen C-Antwort verwendet diese das richtige "am" / "pm" -Format. Das andere Poster fehlt
#include <time.h>
- wenn Ihr Compiler dies zulässt, sind es 136 Bytes. Welches sollten wir zählen?quelle
time.h
. Bearbeitung.Mondschrift - 56 Bytes
Leider implementiert die Lua-Standardbibliothek nur% p für AM / PM in Großbuchstaben, sodass ich die Methode niedriger aufrufen muss.
quelle
SpecBAS - 64 Bytes
Das eingebaute
p$
Zeitfunktion liefert AM oder PM, daher muss diese mit formatiert werdenREPLACE$
, um sie so zu ändern, dass sie vor / nach dem Buchstaben einen Punkt enthält.Dann musste die Zeitausgabe in Kleinbuchstaben umgewandelt werden.
quelle
MATLAB, 66 Bytes
Zeigt an:
quelle
Python 2,
756766 Bytesalte Version, 75 Bytes
alte Version, 75 Bytes
quelle
Python 3,
1178779 BytesDies erhält die Stunden und Minuten von einer 12-Stunden-Uhr unter Verwendung des Formats
%I:%M
plusam
oderpm
using%P
. Wir wählen dann alles bis auf das Letzte ausm
und hängen es an.m.
.Dank Ruth Franklin ein paar Bytes gespart!
quelle
datetime
einmal verwenden, ist die Verwendung um 6 Byte kürzerfrom datetime import*; h=datetime.now() ...