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


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

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


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.


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


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


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!


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

3

Pyth, 38 36 byte

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

Disimpan 2 byte berkat @Jakube!


@ 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


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


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.

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

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

(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,'.'))+'.'

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

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

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


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


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

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

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.

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.


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

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

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?


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.


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.


1

MATLAB, 66 byte

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

Menampilkan:

It's 2:48p.m.

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

@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!


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.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.