यह [चालू वर्ष] पहले से ही है, दोस्तों, घर जाओ


31

अधिकांश चुनौतियों पर जब वर्तमान में यह चुनौती का संबंधित वर्ष नहीं है, तो यह सामने वाले का कहना है।

यह [चालू वर्ष] पहले से ही है, दोस्तों, घर जाओ।

आपको इस पाठ को वर्तमान वर्ष के प्रतिस्थापन के साथ आउटपुट करना होगा।


आई / ओ

इनपुट: कोई नहीं

आउटपुट : It's [year] already, folks, go home.[वर्ष] के साथ वर्तमान वर्ष में बदल गया।


17
पहले टेस्ट रन, तारीख के बजाय समय मिला: यह 8:58 पहले से ही है, दोस्तों, घर जाओ।
steenbergh

क्या मैं इनपुट ले सकता हूं और फिर इसे अनदेखा कर सकता हूं (यानी String goHome(Object foo){return "It's "+currentYear()+" already, folks, go home.";}(लेकिन बहुत कम, निश्चित रूप से) की तर्ज पर कुछ करना है )?
डोरुकायहन

यह शर्म की बात है कि मैं चुनौती को सचमुच में नहीं संकलित करूं: ///, 46 बाइट्सIt's the current year already, folks, go home.
कॉमरेड स्पार्कलपनी

3
@steenbergh यदि केवल स्कूल सुबह ही ऐसा था। xD: P
HyperNeutrino

मुझे लगता है कि यह चुनौती अधिक उपयुक्त होगी यदि यह "अगर यह चालू वर्ष नहीं है, तो यह उत्पादन, और कुछ नहीं", लेकिन फिर भी अच्छी चुनौती +1
त्स

जवाबों:



17

सी (जीसीसी), 58 बाइट्स

f(){printf("It's%s already, folks, go home.",__DATE__+6);}

19
ध्यान दें कि आपको सही कार्यक्षमता प्राप्त करने के लिए वर्ष में एक बार इसे फिर से जोड़ना होगा।
रॉबर्ट फ्रेजर

3
@RobertFraser इस साइट पर किसी भी C (gcc) उत्तर को चलाने के लिए, जैसा कि आप इसे चलाते हैं gcc golf.c && ./a.out। इस प्रक्रिया में एक बाइनरी का गठन कोड गोल्फ के लिए अप्रासंगिक है। मेरे स्रोत कोड को आंका जा रहा है, न कि बाइनरी को उत्पन्न किया जा रहा है (यदि ऐसा था तो मेरा जवाब x86-64 होगा)।
orlp

1
यह सच है, लेकिन यह "एसी प्रोग्राम नहीं है जो वांछित आउटपुट का उत्पादन करेगा" लेकिन "एक शेल कमांड जो वांछित आउटपुट का उत्पादन करेगा"
एलाज़ार

2
@ 12431234123412341234123 फ़ंक्शंस कोडगॉल्फ पर स्वीकार्य उत्तर हैं।
orlp

1
Nitpickers ... @orlp, चूंकि __DATE__[6]एक स्थान है, आप एक बाइट को अलग कर सकते हैं: ..."It's%s already, folks, go home.",__DATE__+6);}( यह और इसके बीच के लापता स्थान को ध्यान में रखें %s)।
YSC

15

05AB1E , 21 20 बाइट्स

एग्री द आउटकॉलफर को बाइट देने के लिए धन्यवाद

žg“It's ÿˆ§,¹Ò,‚œ€¨.

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


1
मुझे लगता है कि आप जेली के साथ 05AB1E को भ्रमित कर रहे थे, जिसमें “...»संपीड़ित स्ट्रिंग्स के लिए सिंटैक्स है और »किसी भी मामले में दबाया नहीं जा सकता है।
आउटगोल्फर

3
पठनीय पाठ के बिना यह एकमात्र उपाय है :(
boboquack

1
कृपया स्पष्टीकरण दें?
ckjbgames

2
@ckjbgames बिल्ट-इन डिक्शनरी
qwr

@boboquack हां, It's पठनीय है। बाकी के लिए ऐसा करते हैं
user202729


11

PHP, 42 बाइट्स

It's <?=date(Y)?> already, folks, go home.

बहुत यकीन है कि आप के आसपास उद्धरण की जरूरत है Y
माइकल जॉनसन

3
@MichealJohnson PHP अपरिवर्तित स्थिरांक को समान मान के साथ तार में परिवर्तित कर देगी, इसलिए इसे काम करना चाहिए (लेकिन यह एक नोटिस फेंक देगा)
Erik

7
@MichealJohnson आप PHP के साथ कभी भी निश्चित नहीं हैं
चार्ली

8

बैश, 45 अक्षर

printf "It's %(%Y)T already, folks, go home."

बैश के बिल्ट-इन printfसंस्करण 4.2 को %(fmt)Tप्रारूप निर्दिष्ट किया गया था और संस्करण 4.3 के बाद से यह तर्क के अभाव में वर्तमान टाइमस्टैम्प में चूक करता है।

नमूना रन:

bash-4.3$ printf "It's %(%Y)T already, folks, go home."
It's 2017 already, folks, go home.

6

बैच, 45 बाइट्स

@echo It's %date:~6% already, folks, go home.

बैच वास्तव में एक बार के लिए काफी प्रतिस्पर्धी है।


1
मुझे लगता है कि यह समाधान परिणाम विभिन्न स्थानीय सेटिंग्स से भिन्न होता है ...
स्टीववेस्टल


5

डॉस पर x86 मशीन कोड - 62 बाइट्स

00000000  b4 04 cd 1a bf 23 01 88  c8 24 0f 00 05 4f c1 e9  |.....#...$...O..|
00000010  04 75 f4 ba 1b 01 b4 09  cd 21 c3 49 74 27 73 20  |.u.......!.It's |
00000020  30 30 30 30 20 61 6c 72  65 61 64 79 2c 20 66 6f  |0000 already, fo|
00000030  6c 6b 73 2c 20 67 6f 20  68 6f 6d 65 2e 24        |lks, go home.$|
0000003e

भले ही BIOS से इनपुट BCD में है (जैसा कि समतुल्य DOS कॉल से प्राप्त सादे 16 बिट मूल्य के विपरीत), इसे ASCII को डिकोड करना लगभग एक बेस -10 प्रिंटिंग रजिस्टर के रूप में लंबे समय तक निकला। ओह अच्छा।

    org 100h

section .text

start:
    mov ah,4
    int 1ah             ; get the date from BIOS; cx now contains the year in packed BCD
    mov di,placeholder  ; put di on the last character of placeholder
lop:
    mov al,cl
    and al,0xf  ; get the low nibble of cx
    add [di],al ; add it to the digit
    dec di      ; previous character
    shr cx,4    ; next nibble
    jnz lop     ; loop as long as we have digits to unpack in cx
    mov dx,its
    mov ah,9
    int 21h     ; print the whole string
    ret

its:
    db "It's 000"
placeholder:
    db "0 already, folks, go home.$"




4

मैथेमेटिका, 58 बाइट्स

"It's "<>ToString@#<>" already, folks, go home."&@@Date[]&

अनाम फ़ंक्शन। कोई इनपुट नहीं लेता है और आउटपुट के रूप में एक स्ट्रिंग लौटाता है। नहीं, मैं एक REPL सबमिशन नहीं करने जा रहा हूँ, इसे स्वयं पोस्ट करें यदि एक बाइट इतना महत्वपूर्ण है।



3

टीआई-बेसिक (ओएस 5.2+ के साथ टीआई -84 प्लस सीई), 64 बाइट्स

getDate
"It's "+toString(Ans(1))+" already, folks, go home.

TI-Basic एक टोकन भाषा है। कुछ कमांड ( getDateऔर toString(, आदि), और सभी लोअरकेस अक्षर दो-बाइट्स हैं और यहां इस्तेमाल होने वाली हर चीज एक-एक बाइट है।

स्पष्टीकरण:

getDate                                             # 3, store {Y,M,D} in Ans
"It's "+toString(Ans(1))+" already, folks, go home. # 61, implicitly return required string with Y from getDate

टीआई-बेसिक (ओएस 5.1 के साथ टीआई -84 प्लस सीई), 108 बाइट्स

{0,1→L1
getDate
Ans(1)L1→L2
LinReg(ax+b) Y1
Equ►String(Y1,Str0
sub(Str0,1,length(Str0)-3→Str0
"It's "+Str0+" already, folks, go home.

TI-Basic एक टोकन भाषा है। अधिक जटिल उपयोगकर्ता चर ( , , , ), कुछ आदेश ( , , , , ), और सभी छोटे अक्षरों दो बाइट्स और सब कुछ किसी और यहां इस्तेमाल प्रत्येक बाइट से एक है कर रहे हैं।Y1L1L2Str0LinReg(ax+b getDatesub(Equ►String(length(

OS 5.2 ने एक toString(कमांड जोड़ा , जो इस सबमिशन के लगभग आधे हिस्से को अवलोकित करता है, जो इस एल्गोरिथ्म पर आधारित है ।

स्पष्टीकरण:

{0,1→L1                                  # 8 bytes
getDate                                  # 3 bytes, store {Y,M,D} list in Ans
Ans(1)L1→L2                              # 10 bytes, multiply L1 by the year and store in L2
LinReg(ax+b) Y1                          # 5 bytes, take a linear regression of the points specified by each pair of corresponding coordinates in L1 and L2 and store it in Y1
Equ►String(Y1,Str0                       # 8 bytes, convert Y1 to a string
sub(Str0,1,length(Str0)-3→Str0           # 18 bytes, remove the "X+0" from LinReg
"It's "+Str0+" already, folks, go home.  # 56 bytes, implicitly return the required output

आप 5.1 कार्यक्रमों में L_1 को इनलाइन कर सकते हैं। एक नई लाइन से छुटकारा मिलता है, दो "L_1" टोकन, और एक → 6 बाइट्स बचाई गईं?
हड़ताली

@striking LinReg(ax+b)L_1 और L_2 का उपयोग करता है, इसलिए मुझे उन दोनों को सेट करना होगा।
pizzapants184

पहले पर कुछ बाइट्स बचाएं: max(getDate)इसके बजाय उपयोग करें क्योंकि गेटडेट में सबसे बड़ी संख्या हमेशा वर्ष होती है।
lirtosiast

3

जावास्क्रिप्ट ईएस 6, 56 बाइट्स

_=>`It's ${Date().split` `[3]} already, folks, go home.`

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

const f = _=>`It's ${Date().split` `[3]} already, folks, go home.`

console.log(f())


+1 सटीक समाधान मैं पोस्ट करने वाला था। तुम भी substr(11,4)या के slice(11,15)बजाय का उपयोग कर सकते हैं split
झबरा

क्या आपको 56 से अधिक बाइट्स की आवश्यकता नहीं है क्योंकि चुनौती यह उत्पादन करने के लिए है?
cnorthfield

3
@ कॉनरथफील्ड आमतौर पर कोड गोल्फ में बोलते हुए, एक फ़ंक्शन जो मान लौटाता है वह एक स्वीकार्य उत्तर है जब तक कि प्रश्न में अधिक विशिष्ट आवश्यकताएं न हों। की जाँच करें इस और इस
पोवल्स

@powelles आपको समझाने के लिए धन्यवाद
cnorthfield

यह सच है @powelles, लेकिन आपका जवाब कुछ भी वापस नहीं करता है जब तक कि आपके गोल्फ में अधिक जोड़ा न जाए।
काइल फेयरन्स


3

पावरशेल 3.0, 44 बाइट्स

"It's $(date|% y*) already, folks, go home."

PowerShell आज बहुत अच्छी तरह से प्रतिस्पर्धा कर रहा है!


1
यह PowerShell (foreach syntax) के संस्करण 2 में काम नहीं करेगा। तो आपके पास यहाँ पर एक v3 + पहचानकर्ता होना चाहिए। अन्य बुद्धिमान शांत।
मैट

2

सी #, 58 बाइट्स

()=>"It's "+DateTime.Now.Year+" already, folks, go home.";

बेनामी फ़ंक्शन जो आवश्यक स्ट्रिंग लौटाता है।

पूरा कार्यक्रम:

using System;

public class Program
{
    public static void Main()
    {
        Func<string> f=
        ()=>"It's "+DateTime.Now.Year+" already, folks, go home.";

        Console.WriteLine(f());
    }
}

6
मुझे लगता है कि आप C # 6 स्ट्रिंग्स का उपयोग करके वर्णों को बचा सकते हैं: $ "यह {DateTime.Now.Year} आदि"।
आर्टुरो टॉरेस सैंचेज़

()=>$"It's {DateTime.Now.Year} already, folks, go home.";57
वर्त्ज़ुई

2

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

s["It's ".d3" already, folks, go home.

ऑनलाइन दुभाषिया।


एक ही लंबाई: s["It's ".d3d." y\n9?}7Tè+1°Õh6%Ñ< (यदि आप \nएक वास्तविक
नईलाइन

@KarlKastor आपके लिए वह काम कैसे हुआ?
आउटगोल्फर

सवाल काफी मत करो। मैंने ऑनलाइन दुभाषिये का उपयोग किया । +++\.N++hSzeSzCi-RChSzCMz-hCeSzChSzN
अजगर

@KarlKastor मैंने इसका उपयोग किया था, लेकिन यह क्रोम में कुछ होना चाहिए, और मुझे अत्यधिक संदेह है कि यह प्रिंट करने योग्य अनजाने अक्षर हैं।
एरिक Outgolfer

2

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

import Data.Time.Clock
f=do t<-getCurrentTime;putStr$"It's "++(fst.span(>'-').show)t++" already, folks, go home."

इसे ऑनलाइन आज़माएं! एक पूर्ण कार्यक्रम के fसाथ बदलें main

फ़ंक्शन getCurrentTimeएक UTCTimeऑब्जेक्ट देता है जो "2017-04-02 10:22:29.8550527 UTC"स्ट्रिंग द्वारा परिवर्तित होने पर कुछ दिखता है showfst.span(>'-')प्रमुख पात्रों को लेता है, जबकि वे '-'वर्तमान वर्ष से बड़े हैं । अगले 7972 वर्षों के take 4लिए 8 बाइट्स कम काम करेंगे, लेकिन हम चाहते हैं कि हमारा कोड हमेशा और हमेशा के लिए सही ढंग से काम करे।

जहां तक ​​मुझे वर्तमान वर्ष के निर्माण के लिए बिल्ड-इन कार्यों को देखने की आवश्यकता है import Data.Time.Calendar, इसलिए स्ट्रिंग से वर्ष निकालना सबसे छोटा विकल्प होना चाहिए।


2

जावास्क्रिप्ट, 77 71 67 63 बाइट्स

alert("It's "+Date().split(' ')[3]+" already, folks, go home.")

रिक्त स्थान के लिए @ प्रोग्रामर 5000 का धन्यवाद!

जावास्क्रिप्ट ईएस 6 66 60 बाइट्स

alert(`It's ${Date().split` `[3]} already, folks, go home.`)


PPCG में आपका स्वागत है! कृपया अपना जवाब गोल्फ ( +एस के आसपास रिक्त स्थान हटा दें !)
प्रोग्रामर

1
console.log("It's",new Date().getFullYear(),"already, folks, go home.")71 बाइट्स के लिए
ovs

@ f @n consoletɪk वापस कंसोल.लॉग पर वापस आ गया, ES6 अलर्ट में ब्रैकेट जोड़े गए
cnorthfield

2

आर, 62 59 62 बाइट्स

cat("It's",format(Sys.time(),"%Y"),"already, folks, go home.")

1
के substr(date(),21,24)बजाय का उपयोग कर format(Sys.time(),"%Y")तीन बाइट्स बचाता है
बाउंसीबॉल 13

यह साल में काम करता है 20017?
रोमन ग्रफ

आह। सही बात। वापस लौट रहा है। Tnx !!
ज़ाहिरो मोर

2

बेफ़ुंज -98 , 57 55 बाइट्स

"emoh og ,sklof ,ydaerla@ s'tI"4k,y\4*:*/"&2"*+.f7+k,@

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

Sysinfo निर्देश के साथ मेरी गलती को इंगित करने के लिए जेम्स होल्डरनेस का धन्यवाद।

"emoh og ,sklof ,ydaerla@ s'tI"स्टैक के लिए वाक्य को धक्का देता है जहां 4k,पहले शब्द को प्रिंट करता है। ysysinfo निर्देश है। जब 20 (स्ट्रिंग में अप्राप्य) पास किया जाता है, तो यह वापस आ जाता है 256*256*(year-1900) + 256*month + day of month\4*:*/"&2"*+.मूल्य से सिर्फ वर्ष लेता है और इसे प्रिंट करता है और f7+k,शेष वाक्य प्रिंट करता है।


@JamesHolderness Arghhh, बताते हैं कि क्यों मैं कभी भी sysinfo काम करने में सक्षम नहीं हुआ। बहुत बहुत धन्यवाद!
जो राजा



1

पायथन 3, 73 68 बाइट्स

import time
print(time.strftime("It's %Y already, folks, go home."))

बहुत बुनियादी जवाब। "% Y" को चालू वर्ष मिलता है।

5 बाइट निकालने के लिए @ovs को धन्यवाद


6 बाइट्स बचाएंprint(f"It's {time.gmtime()[0]} already, go home")
L3viathan

@ L3viathan भी अन्य पायथन के जवाब के समान ही हैं
caird coinheringaahing

1

आईबीएम / लोटस नोट्स फॉर्मूला, 54 बाइट्स

बिल्कुल चुनौतीपूर्ण नहीं है लेकिन यहाँ हम वैसे भी जाते हैं ...

"It's "+@Text(@Year(@Now))+" already, folks, go home."

1

जावा 8, 81 78 बाइट्स

()->System.out.print("It's "+java.time.Year.now()+" already, folks, go home.")

1
एक लैम्ब्डा के अंत में अर्धविराम की जरूरत नहीं है, और या तो प्रिंट या प्रिंटफ प्रिंटलाइन से छोटा होगा।
पावेल

1

टी-एसक्यूएल, 66 बाइट्स

print concat('It''s ',year(getdate()),' already, folks, go home.')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.