Jam berapa, chap?

18

Jujur saya tidak percaya bahwa ini bukan pertanyaan tentang Code Golf, tapi ....

Cetak waktu setempat (dengan am atau pm) sebagai string ke konsol, didahului oleh "Ini".

Contoh:

Run code....

Keluaran:

It's 12:32p.m.

Kode terpendek menang.

Kode pergi!

Papan peringkat

Daniel
sumber
1
Apa format outputnya? Apakah itu penting?
mbomb007
1
Tidak, maksud saya, haruskah itu yyyy-MM-dd hh:mm:ss UTCatau apakah format tanggal itu tidak penting?
mbomb007
8
Saya benar-benar ingin memberikan jawaban yang dicetak It's beer o'clock, tetapi saya menolak.
MickyT
4
Bisakah kita menggunakan 12:32 PMatau 12:32PM? Bukan 12:32p.m.?
Stewie Griffin
3
Apakah 02:32 atau 2:32 jika kurang dari 10:00?
Stewie Griffin

Jawaban:

18

Bash, 39 33 byte

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

Menyia-nyiakan banyak karakter karena spec membutuhkan a.m.atau p.m.saat dateoutput amatau pm. Terima kasih kepada @DigitalTrauma karena telah menghemat 6 byte!

Ini mungkin tidak terlalu portabel. Ini bekerja di Ubuntu 15.04.

Sebuah solusi yang pada dasarnya menggunakan metode yang sama di Ruby , yang secara mengejutkan sama panjangnya :

Ruby, 39 byte

$><<`date "+It's %I:%M%P"`[0..-3]+'.m.'
Gagang pintu
sumber
%Pmemberi saya huruf besar AM atau PM. Saya menggunakan mac jika ada bedanya.
flodel
@flodel Bekerja Pada Mesin Saya ™. Di Ubuntu 15.04, %Pberi huruf kecil, dan %pberi huruf besar (yang agak ... tidak intuitif).
Gagang Pintu
GNU date(di Linux et al.) Dan * BSD date(di mana OSX adalah salah satu varian BSD) memiliki opsi dan perilaku yang sangat berbeda ketika Anda menjelajah di luar set fitur yang ditentukan oleh POSIX. Jadi mungkin jawaban ini harus secara khusus menyebutkan Bash di Linux. (Itu berlaku sedjuga; tetapi permohonan khusus ini dengan kuat dalam set fitur yang aman dan portabel.)
tripleee
Di mesin saya (zsh atau bash di Linux) itu mencetak "Ini 04:17." ketika waktunya 16:17. Tidak ada "pagi" atau "siang"
aditsu
echo -e "It's $(date +%I:%M%P)\b.m."- Alih-alih sedmenggunakan backspace. Tidak terlihat seperti jawaban yang terpisah untuk saya. Juga saya tidak punya pagi / malam tapi saya pikir itu karena lokal.
aragaer
13

AppleScript, 198

Karena AppleScript. Karena mengapa tidak:

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

Itu menyakitkan.

Trauma Digital
sumber
18
AppleScript adalah Java baru.
Gagang Pintu
8

PHP, 35 33 byte

Menggunakan alat yang salah untuk pekerjaan itu!

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

Itu hanya menghapus mdi akhir amatau pm, untuk memungkinkan untuk menambahkan titik-titik. Tanggal datang sebagai 00:00am, dan dengan trimitu menjadi 00:00a.


Jawaban lama (hanya PHP 5.4+):

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

Ini berfungsi karena Anda bisa mende-referensi nilai yang dikembalikan dari suatu fungsi. Ini tidak mungkin di PHP5.3 atau lebih lama.

Ismael Miguel
sumber
Ah, pintar! Anda mengalahkan jawaban php saya
DankMemes
@DankMemes Butuh waktu cukup lama bagi saya. Dan banyak bereksperimen.
Ismael Miguel
Anda menggunakan string literal tanpa tanda kutip. Apakah boleh menggunakan yang tanpa @operator dan menganggap orang akan menjalankannya error_reporting(0)?
DankMemes
@DankMemes Anda secara tidak langsung dapat mengasumsikan bahwa pelaporan kesalahan dinonaktifkan. Ini bacaan yang bagus: meta.codegolf.stackexchange.com/a/1655/14732
Ismael Miguel
5

Visual Basic 6 / VBA, 42 41 byte

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

Menggunakan MsgBox, karena VB6 tidak memiliki konsol (kecuali Anda mencegat tautan, tautan sebagai konsol yang dapat dieksekusi, gunakan beberapa peretasan API Windows, dan lakukan beberapa hal cerdik lainnya ).

Sikat gigi
sumber
3
Kenapa tidak Anda hanya mengganti mdengan .m.? yaitu Debug.Print Replace(Format(Now,"hh:mm am/pm"),"m",".m.")
CompuChip
Nice @toothbrush, saya semacam berharap ini menjadi solusi satu-byte di CJam;)
CompuChip
4

R, 68 , 59 62 60 55

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

(Terima kasih kepada @ Alex.A. Dan @flodel untuk komentarnya) Mengambil waktu sistem saat ini ( Sys.time()), memformatnya dengan benar menggunakan %I:%M%Pkombinasi, menambahkan sebuah titik di bagian akhir, dan menggantikannya mdengan .m..

David Arenburg
sumber
4

Julia, 74 54 43 byte

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

Anda dapat mencobanya secara online !

The time()mengembalikan fungsi waktu saat ini. Ketika diteruskan ke strftimedengan format %I:%M%P, ini menghasilkan HH:MMam/pm, di mana jam adalah per jam 12 jam. Kami mencadangkan satu karakter dengan \buntuk menghapus m, meninggalkan jejak aatau p, lalu .m.menempelkannya di akhir.

Disimpan 31 byte berkat Glen O!

Alex A.
sumber
Bisakah saya menyarankan ini? print("It's ",strftime("%r%P",time())[[1:5,12]],".m.")- digunakan %Puntuk menambahkan huruf kecil am / pm, untuk menghindari perbandingan dan perintah split.
Glen O
Tidak ada masalah dengan bantuan ini. Dan jangan berbicara sendiri - Anda baik-baik saja. Saya hanya mendapatkan kesenangan karena mencoba memeras setiap byte terakhir dari kode. Dalam hal ini, saya baru saja membayangkan bahwa mencoba untuk memotong perintah split dan pernyataan kondisional akan bermanfaat, dan kemudian pergi mencari fungsi yang Anda gunakan. Saya mungkin tidak akan menemukan strftime sendiri (saya akan mencoba untuk mengekstrak waktu langsung dari time())
Glen O
1
@ GlenO Jika Anda mendapatkan kesenangan dari memeras setiap byte terakhir dari kode, PPCG tentu tempat yang tepat untuk Anda!
Alex A.
Kebetulan, saya telah menemukan cara untuk memeras beberapa byte lagi:print(strftime("It's %I:%M%P",time())[1:11],".m.")
Glen O
Sebenarnya, lebih baik lagi:print(strftime("It's %I:%M%P\b.m.",time()))
Glen O
3

Haskell, 135 byte

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

Saya menemukan jauh lebih lucu mainyaitu lima byte lebih lama:

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

Atau 66 byte di Unix:

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

Pyth, 38 36 byte

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

Disimpan 2 byte berkat @Jakube!

kirbyfan64sos
sumber
@ Sp3000 Pada penerjemah online atau lokal?
kirbyfan64sos
@ Sp3000 Saya pikir saya tahu masalahnya. Ini memberi waktu lokasi server Pyth, dan saya tidak menangani tengah malam dengan benar. Tunggu ...
kirbyfan64sos
@ Sp3000 Diperbaiki !!!
kirbyfan64sos
Anda hampir mengalahkan jawaban PHP saya dan jawaban Bash Doorknob!
Ismael Miguel
3

MATLAB, 59 byte

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

Ini 5:38 malam.

Jika diizinkan untuk memiliki spasi putih antara waktu dan am / pm, maka itu bisa serendah 52 byte :

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

Sekarang jam 5:39 sore

slvrbld
sumber
Saya pikir hasilnya pasti05:38p.m.
Ismael Miguel
Menurut komentar OP, nol di depan tidak masalah.
slvrbld
Kamu benar. Di sini, dapatkan upvote saya!
Ismael Miguel
Bagus! Tidak tahu saya bisa menggunakan \bseperti itu ... Anda memerlukan ruang ekstra btw.
Stewie Griffin
3

Perl 5.10+, 58 62 byte

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

Harus dijalankan dengan -M5.010bendera baris perintah untuk mendapatkan say.

Saya tidak memperhitungkan beberapa kasus tepi dalam solusi asli saya (yaitu, 00:**dan 12:**); diperbaiki dengan biaya tambahan 4 byte.

Bagaimana itu bekerja

Dalam konteks skalar, localtimemengembalikan string seperti ini:

Sat Sep 12 03:13:22 2015

Bidang menit sudah berlapis-nol, yang menyimpan beberapa byte (dalam konteks daftar, localtimemengembalikan angka alih-alih string, sehingga Anda harus menambahkannya sendiri).

Ini dia 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 byte

(Hanya untuk bersenang-senang, karena sedikit memperluas aturan.)

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

51 byte + 6 byte untuk -MPOSIX. Juga harus dijalankan dengan -M5.010bendera baris perintah untuk mendapatkan say.

Solusi ini tergantung pada lokal Anda, jadi tidak akan berfungsi pada semua sistem. Itu juga menggunakan modul POSIX, yang mungkin memperluas definisi "built-in", meskipun itu adalah modul inti.

Perl 5.14+ diperlukan untuk rpengubah non-destruktif ke operator substitusi. Solusi setara yang bekerja pada 5.10+ adalah:

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

Ini juga 57 byte (51 byte + 6 byte untuk -MPOSIX).

IniSuitIsBlackNot
sumber
3

Perl 5, 74 byte

Sebuah showcase kecil tentang bagaimana variabel dievaluasi dari kanan ke kiri.

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

Menggunakan POSIX: 80 byte

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

Menggunakan POSIX dengan ketergantungan lokal waktu & sakelar: 54 byte (48 + 6)

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

Uji

$ export LC_TIME="en_DK.UTF-8"
$ perl -MPOSIX -M5.01 whatsthetimechap.pl
It's 3:09p.m.
LukStorms
sumber
1
Anda dapat menyimpan beberapa byte pada solusi POSIX Anda dengan menggunakan -MPOSIXalih-alih use POSIX;, menjatuhkan parens ke panggilan Anda strftime, dan mengganti printdengan say( -M5.010gratis ). Yang membawa solusi terakhir Anda ke 54 byte!
ThisSuitIsBlackNot
Terima kasih. Saya menggunakan saran Anda untuk solusi POSIX terpendek.
LukStorms
1
Anda masih harus menghitung -MPOSIX(6 byte), tetapi Anda dapat menghemat 2 byte dengan menjatuhkan kurung: $_=strftime"It's %I:%M%P",localtime;. Itu memberikan total 54 byte, yang masih lebih baik daripada solusi POSIX 57-byte saya. Sudah selesai dilakukan dengan baik!
ThisSuitIsBlackNot
Heh, terima kasih lagi untuk menyelamatkan beberapa byte.
LukStorms
3

CJam, 40 byte

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

Cobalah online di juru bahasa CJam .

Bagaimana itu bekerja

"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
sumber
3

Mathematica 49 90 92 90 84 byte

-6 byte terima kasih kepada pengguna202729

Solusinya mudah, tetapi sedikit bertele-tele, di Mathematica.

(d=DateString)@{"It's ","Hour12",":","Minute"}<>(d@"AMPM"/."AM"->"a.m."/."PM"->"p.m‌ .")
DavidC
sumber
(Meskipun posting ini sudah cukup tua) StringReplacedapat dihilangkan, simpan 6 byte. (d=DateString)@{"It's ","Hour12",":","Minute"}<>d@"AMPM"/."AM"->"a.m."/."PM"->"p.m."
user202729
2

T-SQL (2012+), 67 65 byte

SQL Server 2012 akhirnya memberi kami fungsi format yang wajar untuk tanggal. Saya masih harus berkutat dengan AM / PM untuk mendapatkan format yang benar.

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

Dalam versi sebelumnya akan membutuhkan sesuatu seperti ini (93 byte)

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

PHP, 49 byte

Kalau saja itu am/pmbukan a.m./p.m....

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

Saya menggunakan banyak byte jahat untuk menghemat sedikit panjang jadi inilah 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;

Versi yang dapat dibaca:

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

C, 103 94 byte

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

Tidak disatukan

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

PHP, 41 byte

It's <?=strtr(date('g:ia'),['m'=>'.m.']);

Pertama kali saya memainkan ini. Tidak yakin apakah saya harus memperbarui / mengedit jawaban PHP sebelumnya (49 byte) atau hanya menambahkan ...

fisharebest
sumber
Anda harus selalu menambahkan sendiri. Anda hanya mengomentari jawaban seseorang jika Anda melihat sesuatu yang dapat menyelamatkan mereka beberapa byte. Tapi selain itu, jawaban yang bagus!
Ismael Miguel
Omong-omong, Anda dapat menulis [m=>'.m.'], yang menghemat 2 byte. (Peringatan dapat diabaikan, jadi, jangan khawatir tentang mereka.)
Ismael Miguel
2

SQL (PostgreSQL), 42 41 byte

Varian SQL lain, namun yang ini ada dalam kueri.

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

Sebagai catatan pm atau am berfungsi untuk mendapatkan bagian am / pm. Opsi pemformatan di PostgreSQL benar-benar sangat fleksibel. Terima kasih kepada @manatwork untuk tip untuk memindahkannya it'ske format string.

SQLFiddle

MickyT
sumber
Jadi, Anda perlu menyesuaikan am / pm secara manual?
David Arenburg
@ DavidVenburg, tidak, itu benar dengan baik ... tapi saya harus memeriksanya, karena sepertinya tidak benar. Jika Anda menambahkan + time '12:00'setelah now()dalam SQLFiddle itu harus mengubah am / pm.
MickyT
1 karakter lebih pendek:select to_char(now(),'"It''s" HH:MIa.m.')
manatwork
@manatwork, terima kasih sangat bagus. Saya tidak akan berpikir untuk mencoba itu.
MickyT
2

CJam, 43 byte

Harus mengisi angka dengan nol membuat ini lebih besar dari yang saya inginkan. Pada akhirnya, pemformatan string adalah cara terpendek.

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

Cobalah online .

Penjelasan

   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
sumber
1
Ini gagal untuk kedua 12-an. Alih-alih 12:37itu output 00:37.
Zach Gates
2

Javascript, 103 byte

Javascript dijalankan dari konsol.

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

C #, 63 byte

C # dieksekusi dari jendela langsung.

?"It's "+System.DateTime.Now.ToString("h:MMt").ToLower()+".m.";
DaveMorganTexas
sumber
Juga berjalan sebagai F #;)
Stachu
Anda tidak perlu menghitung d.length, Anda cukup menulis -ndan itu akan dihitung dari akhir, hanya sebuah FYI. d="It's "+new Date().toLocaleTimeString();d.slice(0,-6)+d.slice(-2,-1).toLowerCase()+'.m.'90 byte Dan Anda dapat menyimpan satu byte dengan memindahkan "It's "string. Dan beberapa byte dari shortcut string kecil di sana. d=new Date().toLocaleTimeString();"It's "+d.slice(0,5)+d[9].toLowerCase()+'.m.'79 byte
Jan
Dan jika jawabannya harus independen-lokal (karena beberapa telah diposting), gunakan saja toLocaleTimeString("en-US")86 byte.
Jan
2

Bash, 44 karakter

Bash murni, hanya shell builtin, tidak ada alat pelacur.

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

Contoh dijalankan:

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

Powershell, 49 byte

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

(date).hour/23tampaknya berfungsi sebagai indeks untuk "ap"karena membulatkan ke 0jam kurang dari 12 dan 1untuk 12 dan di atas.

Danko Durbić
sumber
Seharusnya bisa bermain golf beberapa karakter dengan memperlakukan "p" / "a" sebagai string yang berubah menjadi char-array implisit - 51 byte -"It's $(date -f hh:mm)$("pa"[(date).hour-lt12]).m."
AdmBorkBork
Terbaru Anda "{0:hh:mm}$("ap"[($d=date).hour/23]).m."-f$dmelewatkan It's di awal. Jika Anda menempelkannya ke depan, itu sama dengan 49 byte"It's $((date -f hh:mm)+"ap"[(date).hour/23]).m."
AdmBorkBork
Salahku. Saya sudah memperbaikinya. Bagaimanapun, versi ini lebih "benar", karena hanya membuat satu panggilan kedate
Danko Durbić
Untuk apa nilainya, saya sengaja menemukan yang berikut sambil meneliti sesuatu yang lain. Rupanya para [datetime]pemain selalu en-AS . Itu berarti sesuatu seperti ini "It's $(("{0:h:mmt}"-f[datetime](date)).ToLower()).m."adalah mungkin ... yang, diberikan, adalah 54 byte dan lebih lama dari solusi Anda saat ini, tetapi masih merupakan kekhasan bahasa yang menarik.
AdmBorkBork
@TimmyD Menarik, tetapi sepertinya hanya casting ke DateTime yang en-US, bukan pemformatan.
Danko Durbić
2

Tergantung lokal

Untuk lingkungan browser yang menyetel lokal ke en-CAatau lokal apa pun yang menghasilkan waktu 12 jam secara default:

CoffeeScript, 81 byte

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

Independen lokal

CoffeeScript, 113 96 byte

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

Sebelumnya:

Yang ini bekerja di semua lingkungan browser terlepas dari lokal. Membutuhkan Chrome 24+, Firefox 29+, IE 11+, Opera 15+ atau turunan lainnya. Tidak berfungsi di Safari. Lihat Intl.DateTimeFormat.

alert "It's #{new Intl.DateTimeFormat('en',{hour:f='2-digit',minute:f}).format(new Date).toLowerCase()[..-2]}.m."
rink.attendant.6
sumber
Jawaban javascript memberi saya:It's 2:59: m.m.
Mwr247
@ Mwr247 Di manakah lokasi browser Anda?
rink.attendant.6
@ rinkattendant6 Lokal saya adalahen-US
Mwr247
2

Swift - 124 102 byte

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

C, 154 byte

#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');}

Berbeda dengan jawaban C lainnya, jawaban ini menggunakan format "am" / "pm" yang benar. Poster lainnya dihilangkan #include <time.h>- jika kompiler Anda mengizinkan ini, kami turun ke 136 byte. Yang mana yang harus kita hitung?

mindriot
sumber
Anda benar, pada kenyataannya semua yang saya dapatkan adalah peringatan - saya merasa bingung dengan kesalahan karena mencoba melakukannya tanpa time.h. Editing.
mindriot
1

Moonscript - 56 byte

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

Sayangnya pustaka standar Lua hanya mengimplementasikan% p untuk huruf besar AM / PM, jadi saya harus memanggil metode lebih rendah.

Ryan Russell
sumber
1

SpecBAS - 64 byte

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

Built-in p$dari fungsi waktu mengembalikan AM atau PM, jadi ini kemudian harus diformat dengan REPLACE$untuk mengubahnya sehingga harus berhenti penuh sebelum / setelah surat itu.

Maka output waktu harus dikonversi ke huruf kecil.

Brian
sumber
1

MATLAB, 66 byte

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

Menampilkan:

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

Python 2, 75 67 66 byte

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

versi lama, 75 byte

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

versi lama, 75 byte

import time
print"It's",time.strftime("%I:%M%p").lower().replace("m",".m.")
Maks
sumber
@AlexA. Tidak bekerja di Python 2 time.strftime setidaknya di bawah windows memberikan "ValueError: Invalid format string"
Max
@AlexA Python 2.7.10 (default, 23 Mei 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] pada win32 Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk lebih informasi. >>> waktu impor; cetak "Ini% sm"% time.strftime ("% I:% M% p") [: 6] .lower () 01:30 p.`
Maks.
1

Python 3, 117 87 79 byte

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

Ini mendapatkan jam dan menit dari jam 12 jam menggunakan format %I:%M, plus amatau pmmenggunakan %P. Kami kemudian memilih semuanya kecuali yang terakhir mdan menambahkan.m. .

Disimpan beberapa byte berkat Ruth Franklin!

Alex A.
sumber
1
Karena Anda hanya menggunakan datetimesatu kali, ini lebih pendek 6 byte untuk digunakanfrom datetime import*; h=datetime.now() ...
Ruth Franklin
@RuthFranklin Terima kasih atas sarannya! Saya juga menemukan beberapa cara lain untuk mempersingkatnya.
Alex A.