Wie spät ist es, Junge?

18

Ich kann ehrlich gesagt nicht glauben, dass dies noch keine Frage zu Code Golf ist, aber ...

Geben Sie die Ortszeit (mit morgens oder abends) als Zeichenfolge an der Konsole aus, der "Es ist" vorangestellt ist.

Beispiel:

Run code....

Ausgabe:

It's 12:32p.m.

Kürzester Code gewinnt.

Code weg!

Bestenliste

Daniel
quelle
1
Was ist das Ausgabeformat? Ist das wichtig?
mbomb007
1
Nein, ich meine, sollte es sein yyyy-MM-dd hh:mm:ss UTCoder spielt das Datumsformat keine Rolle?
mbomb007
8
Ich wollte wirklich eine Antwort finden, die sich auszahlt It's beer o'clock, aber ich habe mich geweigert.
MickyT
4
Können wir 12:32 PModer verwenden 12:32PM? Statt 12:32p.m.?
Stewie Griffin
3
Ist es 02:32 oder 2:32, wenn es weniger als 10:00 ist?
Stewie Griffin

Antworten:

18

Bash, 39 33 Bytes

date "+It's %I:%M%P."|sed s/m/.m/

Verschwendete eine Reihe von Zeichen, weil die Spezifikation erfordert a.m.oder p.m.während dateAusgaben amoderpm . 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

$><<`date "+It's %I:%M%P"`[0..-3]+'.m.'
Türknauf
quelle
%PGibt mir AM oder PM in Großbuchstaben. Ich bin auf einem Mac, wenn es einen Unterschied macht.
Flodel
@flodel funktioniert auf meiner Maschine ™. Gibt unter Ubuntu 15.04 %PKleinbuchstaben und %pGroßbuchstaben an (was ein bisschen ... nicht intuitiv ist).
Türklinke
GNU date(unter Linux et al.) Und * BSD date(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 gilt sedauch; diese spezielle Aufforderung ist jedoch fest in der
Liste
Auf meinem Computer (zsh oder bash unter Linux) wird "Es ist 04:17" ausgegeben. wenn es 16:17 Uhr ist. Kein "am" oder "pm"
aditsu
echo -e "It's $(date +%I:%M%P)\b.m."- Anstatt seddie 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.
Aragaer
13

AppleScript, 198

Weil AppleScript. Weil warum nicht:

set AppleScript's text item delimiters to {":"," "}
set d to (current date)'s time string's every text item
"It's "&d's item 1&":"&d's item 2&string id ((d's item 4's first character's id)+32)&".m."

Das war schmerzhaft.

Digitales Trauma
quelle
18
AppleScript ist das neue Java.
Türklinke
8

PHP, 35 33 Bytes

Verwenden Sie das falsche Werkzeug für den Job!

It's <?=trim(date('h:ia'),m)?>.m.

Es wird einfach das mam Ende von amoder entfernt pm, um das Hinzufügen der Punkte zu ermöglichen. Das Datum kommt als 00:00am, und trimwird damit 00:00a.


Alte Antwort (nur PHP 5.4+):

It's <?=date('h:i'),date(a)[0]?>.m.

Dies funktioniert, weil Sie einen von einer Funktion zurückgegebenen Wert dereferenzieren können. Dies ist in PHP5.3 oder älter nicht möglich.

Ismael Miguel
quelle
Ach, schlau! Sie haben meine PHP-Antwort
übertroffen
@DankMemes Es hat eine ganze Weile gedauert. Und viel experimentieren.
Ismael Miguel
Sie haben ein String-Literal ohne Anführungszeichen verwendet. Ist es in Ordnung, diese ohne den @Operator zu verwenden und davon auszugehen, dass die Leute damit arbeiten werden error_reporting(0)?
DankMemes
@DankMemes Sie können indirekt davon ausgehen, dass die Fehlerberichterstattung deaktiviert ist. Hier ist eine gute Lektüre: meta.codegolf.stackexchange.com/a/1655/14732
Ismael Miguel
5

Visual Basic 6 / VBA, 42 41 Bytes

MsgBox"It's "&Format(Now,"h:mma/p")&".m."

Verwenden 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).

Zahnbürste
quelle
3
Warum ersetzst du nicht einfach mdurch .m.? dh Debug.Print Replace(Format(Now,"hh:mm am/pm"),"m",".m.")
CompuChip
Nice @toothbrush, ich habe damit gerechnet, dass dies eine Ein-Byte-Lösung in CJam ist;)
CompuChip
4

R 68 , 59 62 60 55

cat("It's",sub("m",".m",format(Sys.time(),"%I:%M%P.")))

(Dank an @ Alex.A. Und @flodel für die Kommentare) Nimmt die aktuelle Systemzeit ( Sys.time()), formatiert sie korrekt mit einer %I:%M%PKombination, fügt am Ende einen Punkt hinzu und ersetzt den mdurch .m..

David Arenburg
quelle
4

Julia, 74 54 43 Bytes

print(strftime("It's %I:%M%P\b.m.",time()))

Sie können es online ausprobieren !

Die time()Funktion gibt die aktuelle Uhrzeit zurück. Bei der Übergabe an strftimedas Format %I:%M%Pergibt sich HH:MMam/pm, dass die Stunden im 12-Stunden- Format angegeben sind. Wir sichern ein Zeichen mit \b, um das Zeichen zu entfernen m, und lassen ein abschließendes aoder am Ende phängen .m..

31 Bytes gespart dank Glen O!

Alex A.
quelle
Darf ich das vorschlagen? print("It's ",strftime("%r%P",time())[[1:5,12]],".m.")- %Pfügt Kleinbuchstaben am / pm hinzu, um den Vergleich und den Befehl split zu vermeiden.
Glen O
Keine Probleme bezüglich der Hilfe. Und rede dich nicht aus - es geht dir gut. Es macht mir einfach Spaß, jedes letzte Byte aus dem Code herauszupressen. In diesem Fall habe ich nur herausgefunden, dass es von Vorteil ist, den Befehl split und die bedingte Anweisung zu umgehen. Dann habe ich mir die von Ihnen verwendeten Funktionen angesehen. Ich hätte wahrscheinlich selbst keine Freizeit gefunden (ich hätte versucht, die Zeit direkt zu extrahieren time())
Glen O
1
@GlenO Wenn Sie Spaß daran haben, jedes letzte Byte aus dem Code herauszuholen, ist PPCG mit Sicherheit der richtige Ort für Sie!
Alex A.
Übrigens habe ich einen Weg gefunden, noch ein paar Bytes herauszuquetschen:print(strftime("It's %I:%M%P",time())[1:11],".m.")
Glen O
Eigentlich noch besser:print(strftime("It's %I:%M%P\b.m.",time()))
Glen O
3

Haskell, 135 Bytes

import Data.Time.Format
import Data.Time.LocalTime
main=getZonedTime>>=putStr.(++".m.").init.formatTime defaultTimeLocale"It's %I:%M%P"

Ich fand eine viel amüsantere main, die fünf Bytes länger ist:

getZonedTime>>=putStr.formatTime(TimeLocale[][]("a","p")""""""""[])"It's %I:%M%P.m."

Oder 66 Bytes unter Unix:

import System.Cmd;main=system"date \"+It's %I:%M%P.\"|sed s/m/.m/"
Lynn
quelle
3

Pyth, 38 36 Bytes

s["It's "|%J.d6K12K\:.d7?gJK\p\a".m.

2 Bytes gespart dank @Jakube!

kirbyfan64sos
quelle
@ Sp3000 Im Online-Dolmetscher oder vor Ort?
kirbyfan64sos
@ Sp3000 Ich glaube ich kenne das Problem. Es gibt die Zeit des Standorts des Pyth-Servers an, und ich behandle Mitternacht nicht richtig.
Warten Sie
@ Sp3000 behoben !!!
kirbyfan64sos
Sie schlagen fast meine PHP-Antwort und Doorknobs Bash-Antwort!
Ismael Miguel
3

MATLAB, 59 Bytes

disp(sprintf('It''s%s\b.m.',lower(datestr(now,'HH:MMam'))))

Es ist 17:38 Uhr.

Wenn zwischen Uhrzeit und vormittags / nachmittags ein Leerzeichen eingegeben werden darf, kann der Wert bis zu 52 Byte betragen :

disp(sprintf('It''s%s\b.m.',lower(datestr(now,16))))

Es ist 17:39 Uhr

slvrbld
quelle
Ich denke, die Ausgabe muss sein05:38p.m.
Ismael Miguel
Nach dem Kommentar von OP spielt die führende Null keine Rolle.
Slvrbld
Du hast recht. Hier, hab mein Votum!
Ismael Miguel
Nett! Wusste nicht, dass ich so etwas gebrauchen könnte \b... Du brauchst übrigens einen zusätzlichen Platz.
Stewie Griffin
3

Perl 5.10+, 58 62 Bytes

localtime=~/(..)(:..)/;say"It's ",$1%12||12,$2,$1>11?p:a,".m."

Muss mit dem -M5.010Kommandozeilen-Flag ausgeführt werden, um zu erhalten say.

Ich habe in meiner ursprünglichen Lösung einige Randfälle nicht berücksichtigt (nämlich 00:**und 12:**). Fix für 4 zusätzliche Bytes.

Wie es funktioniert

Gibt im skalaren Kontext localtimeeine Zeichenfolge wie die folgende zurück:

Sat Sep 12 03:13:22 2015

Das Minutenfeld ist bereits mit Nullen aufgefüllt, wodurch einige Bytes gespeichert werden (im localtimeListenkontext werden Zahlen anstelle von Zeichenfolgen zurückgegeben, sodass Sie diese selbst auffüllen müssen).

Hier ist es ungolfed:

localtime=~/(..)(:..)/;  # Store hour in $1 and minutes in $2
say"It's ",              # Print "It's " followed by...
   $1%12||12,            # hour in 12-hour format
   $2,                   # minutes
   $1>11?p:a,            # "p" if hour > 11, otherwise "a"
   ".m."'                # ".m."

Perl 5.14+, 57 Bytes

(Nur zum Spaß, da es die Regeln ein wenig ausdehnt.)

say"It's ",(strftime"%l:%M%P",localtime)=~s/m/.m./r

51 Bytes + 6 Bytes für -MPOSIX. Muss auch mit dem -M5.010Kommandozeilen-Flag ausgeführt werden, um zu bekommen say.

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 rModifikator des Substitutionsoperators erforderlich . Eine äquivalente Lösung, die mit 5.10+ funktioniert, ist:

$_=strftime"%l:%M%P",localtime;chop;say"It's $_.m."

Dies sind ebenfalls 57 Bytes (51 Bytes + 6 Bytes für -MPOSIX).

ThisSuitIsBlackNot
quelle
3

Perl 5, 74 Bytes

Ein kleines Beispiel dafür, wie die Variablen von rechts nach links ausgewertet werden.

($s,$m,$h)=localtime;printf"It's %d:%02d%s.m.",$h<13?$h:$h%12,$m,$h<12?a:p

Verwendung von POSIX: 80 Bytes

use POSIX;$_=strftime"It's %I:%Mx.m.",@_=localtime;$x=$_[1]<13?a:p;s/x/$x/;print

Verwendung von POSIX mit Zeitabhängigkeit und Switches: 54 Byte (48 + 6)

$_=strftime"It's %I:%M%P",localtime;s/m/.m./;say

Prüfung

$ export LC_TIME="en_DK.UTF-8"
$ perl -MPOSIX -M5.01 whatsthetimechap.pl
It's 3:09p.m.
LukStorms
quelle
1
Sie können mit einem paar Bytes auf dem POSIX - Lösungen sparen -MPOSIXstatt use POSIX;, fällt die Pars in Ihrem Anruf strftimeund Ersetzen printmit say( -M5.010kostenlos ). Damit haben Sie Ihre letzte Lösung auf 54 Byte reduziert!
ThisSuitIsBlackNot
Vielen Dank. Ich habe Ihren Rat für die kürzeste POSIX-Lösung verwendet.
LukStorms
1
Sie müssen noch zählen -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!
ThisSuitIsBlackNot
Nochmals vielen Dank, dass Sie ein paar Bytes gerettet haben.
LukStorms
3

CJam, 40 Bytes

"It's "et3=CmdCe|\'p'a?':et4=s2Ue[@".m."

Probieren Sie es online im CJam-Interpreter aus .

Wie es funktioniert

"It's " e# Push that string.
et3=    e# Select the fourth element of the date/time array (hours).
Cmd     e# Push quotient and remainder of the hour divided by 12.
Ce|     e# Logical OR with 12 to map 0 to 12.
\'p'a?  e# Select 'p' if the quotient is 1 and 'a' if it is 0.
':      e# Push that character.
et4=    e# Select the fifth element of the date/time array (minutes).
s2Ue[   e# Cast to string and left-pad with zeroes to a length of 2.
@".m."  e# Rotate 'a' or 'p' on top of the stack and push ".m.".
Dennis
quelle
3

Mathematica 49 90 92 90 84 Bytes

-6 Bytes dank user202729

Die Lösung ist in Mathematica einfach, aber etwas wortreich.

(d=DateString)@{"It's ","Hour12",":","Minute"}<>(d@"AMPM"/."AM"->"a.m."/."PM"->"p.m‌ .")
DavidC
quelle
(Obwohl dieser Beitrag ziemlich alt ist) StringReplacekann beseitigt werden, sparen Sie 6 Bytes. (d=DateString)@{"It's ","Hour12",":","Minute"}<>d@"AMPM"/."AM"->"a.m."/."PM"->"p.m."
user202729
2

T-SQL (2012+), 67 bis 65 Byte

SQL 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.

PRINT 'It''s '+LOWER(STUFF(FORMAT(GETDATE(),'hh:mmtt.'),7,0,'.'))

In früheren Versionen hätte es so etwas gebraucht (93 Bytes)

PRINT'It''s'+LOWER(STUFF(STUFF(RIGHT(CONVERT(VARCHAR,GETDATE(),109),15),6,7,''),8,0,'.'))+'.'
MickyT
quelle
2

PHP, 49 Bytes

Wenn es nur am/pmstatt a.m./p.m....

It's <?=@preg_replace(~Фž’¢Ð,~ÛÏÑ,date(~˜Å–ž));

Ich habe viele unangenehme Bytes verwendet, um ein bisschen Länge zu sparen, also hier ist das Hex:

00000000: 49 74 27 73 20 3C 3F 3D - 40 70 72 65 67 5F 72 65 |It's <?=@preg_re|
00000010: 70 6C 61 63 65 28 7E D0 - A4 9E 92 8F A2 D0 2C 7E |place(~       ,~|
00000020: DB CF D1 2C 64 61 74 65 - 28 7E 98 C5 96 9E 29 29 |   ,date(~    ))|
00000030: 3B                      -                         |;|
00000031;

Lesbare Version:

It's <?=preg_replace("/[amp]/", "$0.", date("g:ia"));
DankMemes
quelle
2

C, 103 94 Bytes

int main(){time_t r;char b[80];time(&r);strftime(b,80,"It's %I:%M %p",localtime(&r));puts(b);}

Ungolfed

int main()
{
  time_t r;
  char b[80];  
  time(&r);
  strftime(b,80,"It's %I:%M %p",localtime(&r));
  puts(b);
}
Zongor
quelle
2

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 ...

fisharebest
quelle
Sie sollten immer Ihre eigenen hinzufügen. Sie können die Antwort einer Person nur dann kommentieren, wenn Sie etwas sehen, mit dem sie einige Bytes sparen kann. Aber anders als das, nette Antwort!
Ismael Miguel
Du kannst übrigens schreiben [m=>'.m.'], was 2 Bytes spart. (Warnungen können ignoriert werden, machen Sie sich also keine Sorgen.)
Ismael Miguel
2

SQL (PostgreSQL), 42 41 Bytes

Eine andere SQL-Variante befindet sich jedoch in einer Abfrage.

select to_char(now(),'"It''s" HH:MIa.m.')

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 verschiebenit's in den Formatstring zu verschieben.

SQLFiddle

MickyT
quelle
Müssen Sie AM / PM also manuell einstellen?
David Arenburg
@DavidArenburg, nein, es stimmt auch nicht ... aber ich musste es überprüfen, weil es nicht richtig schien. Wenn Sie + time '12:00'nach dem now()in SQLFiddle hinzufügen, sollte es das am / pm ändern.
MickyT
1 Zeichen kürzer:select to_char(now(),'"It''s" HH:MIa.m.')
Manatwork
@manatwork, sehr nett danke. Ich hätte nicht daran gedacht, das zu versuchen.
MickyT
2

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.

4Z]etf=~Cmd@@'p'a?]"It's %02d:%02d%c.m."\e%

Probieren Sie es online aus .

Erläuterung

   et                                       e# Push local time
4Z]  f=                                     e# Get [minutes hours]
       ~Cmd                                 e# Unwrap array, div+mod hours by 12
           @@'p'a?                          e# Select 'p' or 'a' based on remainder
                  ]"It's %02d:%02d%c.m."\e% e# Print
Andrea Biondo
quelle
1
Dies schlägt für beide 12er fehl. Stattdessen 12:37gibt es aus 00:37.
Zach Gates,
2

Javascript, 103 Bytes

Javascript wird von der Konsole ausgeführt.

d="It's "+new Date().toLocaleTimeString();l=d.length;d.slice(0,l-6)+d.slice(-2,l-1).toLowerCase()+'.m.'

C #, 63 Bytes

C # aus dem unmittelbaren Fenster ausgeführt.

?"It's "+System.DateTime.Now.ToString("h:MMt").ToLower()+".m.";
DaveMorganTexas
quelle
Läuft
Du musst nicht rechnen d.length, du könntest einfach schreiben -nund 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.
Jan
Und wenn die Antwort unabhängig von der Ländereinstellung sein muss (wie einige geschrieben haben), verwenden Sie einfach toLocaleTimeString("en-US")86 Bytes.
Jan
2

Bash, 44 Zeichen

Pure Bash, nur Shell-Builtins, keine verdammten Utensilien.

printf -vt "It's %(%I:%M%P)T"
echo ${t%m}.m.

Probelauf:

bash-4.3$ printf -vt "It's %(%I:%M%P)T";echo ${t%m}.m.
It's 01:04p.m.
Mann bei der Arbeit
quelle
2

Powershell, 49 Bytes

"It's {0:hh:mm}$("ap"[($d=date).hour/23]).m."-f$d

(date).hour/23scheint als Index für zu funktionieren, "ap"da er auf 0Stunden unter 12 und 1über 12 gerundet wird.

Danko Durbić
quelle
Sollte in der Lage sein, ein paar Zeichen "It's $(date -f hh:mm)$("pa"[(date).hour-lt12]).m."
abzuspielen,
Dein letztes "{0:hh:mm}$("ap"[($d=date).hour/23]).m."-f$dverpasst das It's am Anfang. Wenn Sie das auf der Vorderseite "It's $((date -f hh:mm)+"ap"[(date).hour/23]).m."
anheften
Mein Fehler. Ich habe es behoben. Wie auch immer, diese Version ist "korrekter", da sie nur einen einzigen Anruf beidate
Danko Durbić
Für das, was es wert ist, bin ich auf Folgendes gestoßen, als ich etwas anderes recherchiert habe. Anscheinend sind [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.
AdmBorkBork
@TimmyD Interessant, aber es sieht so aus, als würde nur DateTime in den USA übertragen, nicht die Formatierung.
Danko Durbić,
2

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

alert "It's #{(x=(new Date).toLocaleTimeString().toLowerCase())[..4]} #{x[9]}.m."

JavaScript (ES5), 90 Byte

alert("It's "+(x=(new Date).toLocaleTimeString().toLowerCase()).slice(0,5)+' '+x[9]+".m.")

Gebietsschema-unabhängig

CoffeeScript, 113 96 Bytes

alert "It's #{(h=(d=new Date).getHours())%12}:#{('0'+d.getMinutes())[-2..]} #{'ap'[+(h>11)]}.m."

Bisherige:

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.

alert "It's #{new Intl.DateTimeFormat('en',{hour:f='2-digit',minute:f}).format(new Date).toLowerCase()[..-2]}.m."
rink.attendant.6
quelle
Die Javascript-Antwort gab mir: It's 2:59: m.m.
Mwr247,
@ Mwr247 In welchem ​​Gebietsschema befindet sich Ihr Browser?
rink.attendant.6
@ rinkattendant6 Mein Gebietsschema isten-US
Mwr247
2

Swift - 124 102 Bytes

import Cocoa
var f=NSDateFormatter()
f.dateFormat="hh:mma"
print("It's \(f.stringFromDate(NSDate()))")
Błażej
quelle
2

C 154 Bytes

#include <time.h>
#define l localtime(&r)
main(){time_t r=time(0);printf("It's %02i:%02i%c.m.",(l->tm_hour+11)%12+1,l->tm_min,(l->tm_hour>=12)?'p':'a');}

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?

Mindriot
quelle
Sie haben Recht, in der Tat war alles, was ich bekam, eine Warnung time.h. Bearbeitung.
Mindriot
1

Mondschrift - 56 Bytes

print "It's "..(os.date'%I:%M%p'\gsub 'M','.M.')\lower!

Leider implementiert die Lua-Standardbibliothek nur% p für AM / PM in Großbuchstaben, sodass ich die Methode niedriger aufrufen muss.

Ryan Russell
quelle
1

SpecBAS - 64 Bytes

PRINT "It's ";LOW$(REPLACE$(TIME$(TIME,"h:mm p$"),"M",".M."))

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.

Brian
quelle
1

MATLAB, 66 Bytes

['It''s' lower(datestr(now,'HH:MMam'))];disp([ans(1:end-1),'.m.'])

Zeigt an:

It's 2:48p.m.
Stewie Griffin
quelle
1

Python 2, 75 67 66 Bytes

import time;print"It's %s.m."%time.strftime("%I:%M%p")[:6].lower()

alte Version, 75 Bytes

import time
t=time.strftime("%I:%M%p")
print"It's",t[:5]+t[5].lower()+".m."

alte Version, 75 Bytes

import time
print"It's",time.strftime("%I:%M%p").lower().replace("m",".m.")
Max
quelle
@AlexA. Nicht in Python 2 arbeiten time.strftime zumindest unter Windows gibt "ValueError: Invalid format string"
Max
@AlexA Python 2.7.10 (Standardeinstellung, 23. Mai 2015, 09:40:32) [MSC v.1500 32 Bit (Intel)] unter win32 Geben Sie "help", "copyright", "credits" oder "license" ein, um weitere Informationen zu erhalten Information. >>> import Zeit; print "Es ist% sm" % time.strftime ( "% I:% M% p") [6] .unterhalb () Es ist 01.30 p.m.`
Max
1

Python 3, 117 87 79 Bytes

from datetime import*
print(datetime.now().strftime("It's %I:%M%P")[:-1]+".m.")

Dies erhält die Stunden und Minuten von einer 12-Stunden-Uhr unter Verwendung des Formats %I:%Mplus amoder pmusing %P. Wir wählen dann alles bis auf das Letzte aus mund hängen es an.m. .

Dank Ruth Franklin ein paar Bytes gespart!

Alex A.
quelle
1
Da Sie nur datetimeeinmal verwenden, ist die Verwendung um 6 Byte kürzerfrom datetime import*; h=datetime.now() ...
Ruth Franklin
@ RuthFranklin Danke für den Vorschlag! Ich habe auch ein paar andere Möglichkeiten gefunden, um es zu verkürzen.
Alex A.