क्या समय है, चैप?


18

मैं ईमानदारी से विश्वास नहीं कर सकता कि यह कोड गोल्फ पर अभी तक एक सवाल नहीं है, लेकिन ...।

स्थानीय समय (am या pm के साथ) कंसोल के लिए एक स्ट्रिंग के रूप में प्रिंट करें, जो "इट्स" से पहले था।

उदाहरण:

Run code....

आउटपुट:

It's 12:32p.m.

सबसे छोटा कोड जीतता है।

कोड दूर!

लीडरबोर्ड


1
आउटपुट स्वरूप क्या है? फर्क पड़ता है क्या?
mbomb007 21

1
नहीं, मेरा मतलब है, यह होना चाहिए yyyy-MM-dd hh:mm:ss UTCया उस तारीख प्रारूप से कोई फर्क नहीं पड़ता?
mbomb007 21

8
मैं वास्तव में एक उत्तर देना चाहता था जो प्रिंट करता है It's beer o'clock, लेकिन मैंने विरोध किया।
मिकट

4
क्या हम उपयोग कर सकते हैं 12:32 PMया 12:32PM? इसके बजाय 12:32p.m.?
स्टीवी ग्रिफिन

3
अगर यह 10:00 से कम है तो क्या यह 02:32 या 2:32 है?
स्टीवी ग्रिफिन

जवाबों:


18

बैश, 39 33 बाइट्स

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

चोकर का एक गुच्छा बर्बाद कर दिया क्योंकि उत्पादन की आवश्यकता है a.m.या p.m.जबकि dateआउटपुट amया pm। 6 बाइट बचाने के लिए @DigitalTrauma का शुक्रिया!

यह बहुत पोर्टेबल नहीं हो सकता है। यह उबंटू 15.04 पर काम करता है।

एक उपाय जो रूबी में अनिवार्य रूप से उसी विधि का उपयोग करता है , जो आश्चर्यजनक रूप से ठीक उसी लंबाई का है :

रूबी, 39 बाइट्स

$><<`date "+It's %I:%M%P"`[0..-3]+'.m.'

%Pमुझे अपरकेस या पीएम देता है। मैं एक पर हूँ MAC अगर यह एक फर्क पड़ता है।
फ्लोडेल

@flodel मेरे मशीन ™ पर काम करता है। उबंटू 15.04 पर, %Pलोअरकेस देता है, और %pअपरकेस देता है (जो थोड़ा सा है ... अनइंस्टिट्यूट)।
दरवाज़े

जीएनयू date(लिनक्स एट अल पर) और * बीएसडी date(जहां ओएसएक्स एक बीएसडी वेरिएंट है) में बेतहाशा अलग-अलग विकल्प और व्यवहार होते हैं, जब आप पोसिक्स द्वारा निर्दिष्ट सुविधा सेट के बाहर उद्यम करते हैं। तो शायद इस जवाब को विशेष रूप से लिनक्स पर बैश का उल्लेख करना चाहिए। (वह sedभी जाता है; लेकिन यह विशेष रूप से आह्वान सुरक्षित और पोर्टेबल सुविधा सेट के भीतर दृढ़ता से होता है।)
ट्रिपल

मेरी मशीन पर (लिनक्स पर zsh या बैश) यह प्रिंट करता है "यह 04:17 है।" जब समय है 16:17। No "am" या "pm"
aditsu

echo -e "It's $(date +%I:%M%P)\b.m."- इसके बजाय sedबैकस्पेस का उपयोग करता है। मेरे लिए एक अलग जवाब की तरह नहीं दिखता है। इसके अलावा, मेरे पास कोई भी / पीएम नहीं है, लेकिन मुझे लगता है कि यह लोकेल के कारण है।
arager

13

AppleScript, 198

क्योंकि AppleScript क्योंकि क्यों नहीं:

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

यह दर्दनाक था।


18
AppleScript नया जावा है।
दरवाज़े

8

PHP, 35 33 बाइट्स

नौकरी के लिए गलत टूल का उपयोग करना!

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

यह बस डॉट्स को जोड़ने की अनुमति देने के लिए, या mके अंत में हटा देता है । तारीख के रूप में आता है , और यह बन जाता है ।ampm00:00amtrim00:00a


पुराना उत्तर (PHP 5.4+ केवल):

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

यह काम करता है क्योंकि आप किसी फ़ंक्शन से लौटाए गए मान का संदर्भ दे सकते हैं। यह PHP5.3 या पुराने में संभव नहीं है।


आह, चतुर! आपने मेरे php उत्तर को हराया
DankMemes

@DankMemes यह मुझे काफी समय लगा। और बहुत सारे प्रयोग।
इस्माईल मिगुएल

आपने बिना उद्धरण के एक स्ट्रिंग शाब्दिक का उपयोग किया। क्या @ऑपरेटर के बिना उन लोगों का उपयोग करना ठीक है और मान लें कि लोग इसे चलाएंगे error_reporting(0)?
डंकेमेसेस

@DankMemes आप अप्रत्यक्ष रूप से मान सकते हैं कि त्रुटि रिपोर्टिंग अक्षम है। यहाँ एक अच्छा पढ़ा है: meta.codegolf.stackexchange.com/a/1655/14732
Ismael Miguel

5

विजुअल बेसिक 6 / वीबीए, 42 41 बाइट्स

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

उपयोग करना MsgBox, क्योंकि VB6 में कंसोल नहीं है (जब तक आप लिंकिंग को रोकते नहीं हैं, तब तक कंसोल एक निष्पादन योग्य के रूप में लिंक हो जाता है, कुछ विंडोज़ एपीआई हैक्स का उपयोग करें, और कुछ अन्य डोडी सामान करते हैं)।


3
आप क्यों नहीं बस की जगह नहीं है mद्वारा .m.? यानी Debug.Print Replace(Format(Now,"hh:mm am/pm"),"m",".m.")
कॉम्पिटिशन

नाइस @toothbrush, मुझे उम्मीद है कि यह CJam में एक-बाइट समाधान होने की उम्मीद है;)
CompuChip

4

आर, 68 , 59 62 60 55

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

(टिप्पणियों के लिए @ एलेक्सा। और @flodel के लिए धन्यवाद) वर्तमान सिस्टम समय लेता है ( Sys.time()), %I:%M%Pसंयोजन का उपयोग करके इसे सही ढंग से प्रारूपित करता है , अंत में एक डॉट जोड़ता है, और इसके mसाथ बदलता है .m.


4

जूलिया, 74 54 43 बाइट्स

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

आप इसे ऑनलाइन आज़मा सकते हैं !

time()समारोह वर्तमान समय देता है। जब strftimeप्रारूप के साथ पारित किया जाता है %I:%M%P, तो यह परिणाम होता है HH:MMam/pm, जहां घंटे 12 घंटे की घड़ी के अनुसार होते हैं। हम साथ एक चरित्र का बैकअप लेने के \bदूर करने के लिए m, उनके पीछे छोड़ने aया p, तो कील .m.अंत पर।

सहेजी गयी 31 बाइट्स ग्लेन हे करने के लिए धन्यवाद!


शायद मैं यह सुझाव दूं? print("It's ",strftime("%r%P",time())[[1:5,12]],".m.")- %Pतुलना और स्प्लिट कमांड से बचने के लिए, लोअरकेस को शाम / बजे जोड़ने का उपयोग करता है।
ग्लेन ओ

मदद के बारे में कोई समस्या नहीं है। और अपने आप को नीचे बात मत करो - आप ठीक करते हैं। मैं कोड से बाहर हर आखिरी बाइट को निचोड़ने की कोशिश से आनंद उठाता हूं। इस मामले में, मुझे लगा कि विभाजन आदेश और सशर्त विवरण को दरकिनार करने की कोशिश करना फायदेमंद होगा, और फिर आपके द्वारा उपयोग किए जाने वाले कार्यों को देखना होगा। मैं शायद अपने आप को स्ट्रैफ़ाइम नहीं मिला होगा (मैंने सीधे समय निकालने की कोशिश की होगी time())
ग्लेन ओ

1
@ गेलो यदि आपको हर अंतिम बाइट को कोड से बाहर करने का आनंद मिलता है, तो पीपीसीजी निश्चित रूप से आपके लिए सही जगह है!
एलेक्स ए।

संयोग से, मुझे कुछ और बाइट्स निचोड़ने का एक तरीका मिल गया है:print(strftime("It's %I:%M%P",time())[1:11],".m.")
Glen O

वास्तव में, और भी बेहतर:print(strftime("It's %I:%M%P\b.m.",time()))
ग्लेन ओ

3

हास्केल, 135 बाइट्स

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

मैंने पाया mainकि पांच बाइट्स से कहीं अधिक मनोरंजक है:

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

या यूनिक्स पर 66 बाइट्स:

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

3

पायथ, 38 36 बाइट्स

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

2 बाइट @Jakube की बदौलत बची!


@ Sp3000 ऑनलाइन दुभाषिया या स्थानीय स्तर पर?
kirbyfan64sos

@ Sp3000 मुझे लगता है कि मैं इस मुद्दे को जानता हूं। यह पायथ सर्वर के स्थान का समय दे रहा है, और मैं आधी रात को सही ढंग से नहीं संभाल रहा हूं। पकड़ो ...
kirbyfan64sos

@ Sp3000 फिक्स्ड !!!
kirbyfan64sos

आप लगभग मेरे PHP उत्तर और Doorknob के बैश उत्तर को हरा रहे हैं!
इस्माईल मिगुएल

3

MATLAB, 59 बाइट्स

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

यह 5:38 बजे है।

यदि इसे समय और सुबह / दोपहर के बीच एक व्हाट्सएप रखने की अनुमति है, तो यह 52 बाइट्स जितना कम हो सकता है :

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

शाम 5:39 बजे


मुझे लगता है कि आउटपुट होना चाहिए05:38p.m.
इस्माईल मिगुएल

ओपी की टिप्पणी के अनुसार, प्रमुख शून्य कोई मायने नहीं रखता है।
slvrbld

आप सही हे। यहाँ, मेरा उत्थान है!
इस्माईल मिगुएल

अच्छा! मुझे नहीं पता था कि मैं इस \bतरह का उपयोग कर सकता हूं ... आपको एक अतिरिक्त स्थान की आवश्यकता है।
स्टीवी ग्रिफिन

3

पर्ल 5.10+, 58 62 बाइट्स

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

-M5.010पाने के लिए कमांड लाइन के ध्वज के साथ चलना चाहिए say

मैं अपने मूल समाधान (अर्थात्, 00:**और 12:**) में कुछ किनारे के मामलों के लिए खाता नहीं था ; 4 अतिरिक्त बाइट्स की लागत पर तय किया गया।

यह काम किस प्रकार करता है

स्केलर संदर्भ में, localtimeइस तरह से एक स्ट्रिंग लौटाता है:

Sat Sep 12 03:13:22 2015

मिनट फ़ील्ड पहले से ही शून्य-पैडेड है, जो कुछ बाइट्स को बचाता है (सूची के संदर्भ में, localtimeस्ट्रिंग्स के बजाय संख्या देता है, इसलिए आपको उन्हें स्वयं पैड करना होगा)।

यहाँ यह अपुष्ट है:

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

पर्ल 5.14+, 57 बाइट्स

(सिर्फ मनोरंजन के लिए, क्योंकि यह नियमों को थोड़ा बढ़ाता है।)

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

के लिए 51 बाइट्स + 6 बाइट्स -MPOSIX-M5.010पाने के लिए कमांड लाइन के झंडे के साथ भी चलना चाहिएsay

यह समाधान आपके स्थान पर निर्भर है, इसलिए सभी प्रणालियों पर काम नहीं करेगा। यह POSIX मॉड्यूल का भी उपयोग करता है, जो एक "बिल्ट-इन" की परिभाषा को बढ़ा सकता है, भले ही यह एक कोर मॉड्यूल हो।

rप्रतिस्थापन ऑपरेटर के लिए गैर-विनाशकारी संशोधक के लिए पर्ल 5.14+ आवश्यक है । 5.10+ पर काम करने वाला समतुल्य समाधान है:

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

यह भी 57 बाइट्स (51 बाइट्स + 6 बाइट्स के लिए -MPOSIX) है।


3

पर्ल 5, 74 बाइट्स

चर का मूल्यांकन दाएं से बाएं कैसे किया जाता है, इसका एक छोटा प्रदर्शन।

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

POSIX का उपयोग करना: 80 बाइट्स

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

POSIX का उपयोग समय स्थान निर्भरता और स्विच के साथ: 54 बाइट्स (48 + 6)

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

परीक्षा

$ export LC_TIME="en_DK.UTF-8"
$ perl -MPOSIX -M5.01 whatsthetimechap.pl
It's 3:09p.m.

1
आप अपने POSIX समाधान पर कुछ बाइट्स को अपने कॉल में पार्न्स को छोड़ने के -MPOSIXबजाय का उपयोग करके बचा सकते हैं , और इसके साथ प्रतिस्थापित कर सकते हैं ( यह मुफ़्त है )। जो आपके अंतिम समाधान को 54 बाइट्स तक ले आता है! use POSIX;strftimeprintsay-M5.010
ThisSuitIsBlackNot 15

धन्यवाद। मैंने सबसे छोटी POSIX समाधान के लिए आपकी सलाह का उपयोग किया।
लुकस्टॉर्म

1
आपको अभी भी -MPOSIX(6 बाइट्स) गिनना है , लेकिन आप कोष्ठकों को गिराकर 2 बाइट्स बचा सकते हैं $_=strftime"It's %I:%M%P",localtime;:। यह कुल 54 बाइट देता है, जो अभी भी मेरे 57-बाइट पोसिक्स समाधान से बेहतर है। बहुत बढ़िया!
ThisSuitIsBlackNot 19

हे, फिर से कुछ बाइट्स को बचाने के लिए धन्यवाद।
लुक्स्टॉर्म्स

3

सीजेएम, 40 बाइट्स

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

CJam दुभाषिया में इसे ऑनलाइन आज़माएं ।

यह काम किस प्रकार करता है

"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

गणितज्ञ 49 90 90 90 84 बाइट्स

-6 बाइट्स उपयोगकर्ता 202029 के लिए धन्यवाद

समाधान सीधा है, लेकिन थोड़ा सा मैथेमेटिका में।

(d=DateString)@{"It's ","Hour12",":","Minute"}<>(d@"AMPM"/."AM"->"a.m."/."PM"->"p.m‌ .")

(हालांकि यह पोस्ट काफी पुरानी है) StringReplaceको खत्म किया जा सकता है, 6 बाइट बचा सकते हैं।(d=DateString)@{"It's ","Hour12",":","Minute"}<>d@"AMPM"/."AM"->"a.m."/."PM"->"p.m."
user202729

2

टी-एसक्यूएल (2012+), 67 65 बाइट्स

SQL सर्वर 2012 ने आखिरकार हमें तारीखों के लिए एक उचित स्वरूपण समारोह दिया। हालांकि मुझे अभी भी प्रारूप ठीक होने के लिए AM / PM के साथ चक्कर लगाना था।

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

पिछले संस्करणों में इसे कुछ इस तरह की आवश्यकता होगी (93 बाइट्स)

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

2

PHP, 49 बाइट्स

यदि am/pmइसके बजाय केवल a.m./p.m....

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

मैंने थोड़ी सी लंबाई को बचाने के लिए बहुत सारे बाइट्स का इस्तेमाल किया, इसलिए यहाँ हेक्स है:

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;

पठनीय संस्करण:

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

2

सी, 103 94 बाइट्स

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

2

PHP, 41 बाइट्स

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

पहली बार मैंने यह खेला है। यकीन नहीं होता कि मैं पिछले PHP उत्तर (49 बाइट्स) को अपडेट / एडिट करने वाला हूं या सिर्फ अपना जोड़ें ...


आपको हमेशा खुद को जोड़ना चाहिए । आप केवल किसी के उत्तर पर टिप्पणी करते हैं यदि आप कुछ देखते हैं जो उन्हें कुछ बाइट्स बचा सकता है। लेकिन इसके अलावा, अच्छा जवाब!
इस्माइल मिगुएल

वैसे, आप लिख सकते हैं [m=>'.m.'], जो 2 बाइट्स बचाता है। (चेतावनियों को नजरअंदाज किया जा सकता है, इसलिए, उनके बारे में चिंता न करें।)
इस्माईल मिगुएल

2

SQL (PostgreSQL), 42 41 बाइट्स

एक और एसक्यूएल संस्करण, हालांकि यह एक क्वेरी में है।

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

एक नोट के रूप में या तो पीएम या एमएम / पीएम पार्ट पाने के लिए काम करता है। PostgreSQL में स्वरूपण विकल्प वास्तव में काफी लचीले हैं। it'sप्रारूप स्ट्रिंग में स्थानांतरित करने के लिए टिप के लिए @manatwork का धन्यवाद ।

SQLFiddle


इसलिए आपको इसे मैन्युअल रूप से समायोजित करने की आवश्यकता है?
डेविड अरेनबर्ग

@DavidArenburg, नहीं, यह इसके साथ सही नहीं है ... लेकिन मुझे इसकी जाँच करनी थी, क्योंकि यह सही नहीं लगता था। आप जोड़ देते हैं तो + time '12:00'बाद now()SQLFiddle में यह AM / PM बदलना चाहिए।
मिकट

1 चरित्र छोटा:select to_char(now(),'"It''s" HH:MIa.m.')
मैनटवर्क

@manatwork, बहुत अच्छा धन्यवाद। मैंने ऐसा प्रयास करने के बारे में नहीं सोचा होगा।
मिकट

2

सीजेएम, 43 बाइट्स

शून्य के साथ संख्याओं को पैड करने से यह बड़ा होता है जितना मैं चाहूंगा। अंत में, स्ट्रिंग प्रारूपण सबसे छोटा तरीका था।

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

इसे ऑनलाइन आज़माएं

व्याख्या

   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
यह दोनों 12 के लिए विफल रहता है। इसके बजाय 12:37आउटपुट 00:37
जैच गेट्स

2

जावास्क्रिप्ट, 103 बाइट्स

कंसोल से निष्पादित जावास्क्रिप्ट।

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

सी #, 63 बाइट्स

तत्काल खिड़की से C # निष्पादित।

?"It's "+System.DateTime.Now.ToString("h:MMt").ToLower()+".m.";

एफ # के रूप में भी चलता है;)
स्टैचू

आपको गणना करने की आवश्यकता नहीं है d.length, आप बस लिख सकते हैं -nऔर यह अंत से गणना करेगा, बस एक FYI करें। d="It's "+new Date().toLocaleTimeString();d.slice(0,-6)+d.slice(-2,-1).toLowerCase()+'.m.'90 बाइट्स। और आप "It's "स्ट्रिंग को स्थानांतरित करके एक बाइट बचा सकते हैं । और वहाँ में थोड़ा स्ट्रिंग शॉर्टकट से कुछ बाइट्स। d=new Date().toLocaleTimeString();"It's "+d.slice(0,5)+d[9].toLowerCase()+'.m.'79 बाइट्स।
Jan

और यदि उत्तर को स्थानीय-स्वतंत्र होना चाहिए (जैसा कि कुछ ने पोस्ट किया है), तो बस toLocaleTimeString("en-US")86 बाइट्स का उपयोग करें ।
Jan

2

बैश, 44 वर्ण

शुद्ध बैश, सिर्फ शेल बिल्डिंग्स, नहीं *** बर्तन।

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

नमूना रन:

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

2

पॉवरशेल, 49 बाइट्स

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

(date).hour/23यह एक सूचकांक के रूप में काम करता है "ap"क्योंकि यह 012 से कम घंटे और 112 और उससे अधिक के लिए गोल होता है।


इसके बजाय "p" / "a" का व्यवहार करके कुछ वर्णों को बंद करने में सक्षम होना चाहिए क्योंकि स्ट्रिंग एक अंतर्निहित चार-सरणी में बदल गई - 51 बाइट्स -"It's $(date -f hh:mm)$("pa"[(date).hour-lt12]).m."
AdmBorkBork

आपकी नवीनतम शुरुआत में "{0:hh:mm}$("ap"[($d=date).hour/23]).m."-f$dयाद आती है It's । यदि आप उस मोर्चे पर "It's $((date -f hh:mm)+"ap"[(date).hour/23]).m."
सौदा

मेरी गलती। मैंने इसे ठीक कर लिया है। वैसे भी, यह संस्करण अधिक "सही" है, क्योंकि यह केवल एक ही कॉल करता हैdate
डैंको डर्बीव

इसके लायक क्या है, मैं कुछ और शोध करते समय निम्नलिखित में ठोकर खाई। जाहिर तौर पर [datetime]कलाकार हमेशा एन-यूएस होते हैं । इसका मतलब है कि ऐसा कुछ "It's $(("{0:h:mmt}"-f[datetime](date)).ToLower()).m."संभव है ... जो, प्रदान किया गया, 54 बाइट्स और आपके वर्तमान समाधान से अधिक लंबा है, लेकिन अभी भी भाषा का एक दिलचस्प विचित्रता है।
AdmBorkBork

@TimmyD दिलचस्प है, लेकिन ऐसा लगता है कि यह केवल डेटाइम के लिए कास्टिंग है जो एन-यूएस है, स्वरूपण नहीं।
डैंको डर्बिएक

2

लोकेल पर निर्भर

ब्राउज़र वातावरण के लिए, जो en-CAडिफ़ॉल्ट रूप से 12 घंटे के समय को आउटपुट करने वाले या किसी भी स्थान पर सेट किया गया है:

कॉफ़ीस्क्रिप्ट, 81 बाइट्स

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

जावास्क्रिप्ट (ईएस 5), 90 बाइट्स

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

स्थान-स्वतंत्र

कॉफीस्क्रिप्ट, 113 96 बाइट्स

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

पिछला:

यह लोकेल की परवाह किए बिना सभी ब्राउज़र वातावरणों में काम करता है। Chrome को 24+, फ़ायरफ़ॉक्स 29+, IE 11+, ओपेरा 15+ या ऐसे किसी भी डेरिवेटिव की आवश्यकता है। सफारी में काम नहीं करता है। देखते हैं Intl.DateTimeFormat

alert "It's #{new Intl.DateTimeFormat('en',{hour:f='2-digit',minute:f}).format(new Date).toLowerCase()[..-2]}.m."

जावास्क्रिप्ट उत्तर ने मुझे दिया:It's 2:59: m.m.
Mwr247

@ Mwr247 आपका ब्राउज़र किस लोकेल में है?
रिंक.टेंटेंड ।6

@ rinkattenders6 मेरा स्थान हैen-US
Mwr247

2

स्विफ्ट - 124 102 बाइट्स

import Cocoa
var f=NSDateFormatter()
f.dateFormat="hh:mma"
print("It's \(f.stringFromDate(NSDate()))")

2

सी, 154 बाइट्स

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

अन्य C उत्तर के विपरीत, यह सही "am" / "pm" प्रारूप का उपयोग करता है। दूसरे पोस्टर को छोड़ दिया गया #include <time.h>- यदि आपका कंपाइलर इसकी अनुमति देता है, तो हम 136 बाइट्स के लिए नीचे आते हैं। हमें किसकी गिनती करनी चाहिए?


आप सही कह रहे हैं, वास्तव में मुझे मिली एक चेतावनी थी - मैं इसे बिना करने की कोशिश से एक त्रुटि के साथ भ्रमित हो गया time.h। संपादन।
मनपा

1

मूनस्क्रिप्ट - 56 बाइट्स

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

दुर्भाग्य से लुआ मानक पुस्तकालय केवल अपरकेस / पीएम के लिए% p लागू करता है, इसलिए मुझे विधि को कम करना होगा।


1

SpecBAS - 64 बाइट्स

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

अंतर्निहित p$समय फ़ंक्शन एएम या पीएम को वापस करता है, इसलिए इसे फिर से स्वरूपित करना होगाREPLACE$ इसे बदलने के लिए इसके जाना है, इसलिए उस पत्र के पहले / बाद में इसका पूर्ण विराम है।

फिर टाइम आउटपुट को लोअरकेस में बदलना पड़ा।



1

पायथन 2, 75 67 66 बाइट्स

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

पुराना संस्करण, 75 बाइट्स

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

पुराना संस्करण, 75 बाइट्स

import time
print"It's",time.strftime("%I:%M%p").lower().replace("m",".m.")

@AlexA। पायथन 2 बार काम नहीं कर रहा है। खिड़कियों के नीचे कम से कम समय में "वैल्यूएयर: अमान्य प्रारूप स्ट्रिंग" देता है
अधिकतम

@ एलेक्सा पायथन 2.7.10 (डिफ़ॉल्ट, 23 मई 2015, 09:40:32) [MSC v.1500 32 बिट (Intel)] win32 पर "सहायता", "कॉपीराइट", "क्रेडिट" या "लाइसेंस" और अधिक के लिए जानकारी। >>> आयात समय; प्रिंट "इट्स% एसएम"% टाइम.स्ट्रिफ़टाइम ("% I:% M% p"):: 6] .lower () यह 01:30 p.m.- `
Max

1

पायथन 3, 117 87 79 बाइट्स

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

यह 12 घंटे की घड़ी से प्रारूप %I:%M, प्लस amया pmउपयोग करके घंटे और मिनट प्राप्त करता है %P। हम तो सब कुछ का चयन करते हैं लेकिन अंतिम mऔर अपील करते हैं.m.

रूथ फ्रैंकलिन की बदौलत कुछ बाइट्स बचाए!


1
जैसा कि आप केवल datetimeएक बार उपयोग कर रहे हैं , यह उपयोग करने के लिए 6 बाइट्स छोटा हैfrom datetime import*; h=datetime.now() ...
रूथ फ्रैंकलिन

@RuthFranklin सुझाव के लिए धन्यवाद! मैंने इसे छोटा करने के कुछ और तरीके भी ढूंढे।
एलेक्स ए।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.