C'est [l'année en cours] déjà, les amis, rentrez chez vous

31

Sur la plupart défis du alors que ce n'est actuellement pas l'année correspondante du défi, cela est dit en premier.

C'est déjà [l'année en cours], les amis, rentrez chez vous.

Vous devez sortir ce texte en remplaçant l'année en cours.


I / O

Entrée: aucune.

Sortie : It's [year] already, folks, go home.avec [année] remplacée par l'année en cours.

Matthew Roh
la source
17
Premier essai, j'ai eu l'heure au lieu de la date: il est déjà 8h58, les amis, rentrez chez vous.
steenbergh
Puis-je prendre des informations puis les ignorer (c'est-à-dire faire quelque chose dans le sens de String goHome(Object foo){return "It's "+currentYear()+" already, folks, go home.";}(mais beaucoup plus court, bien sûr))?
dorukayhan veut que Monica revienne le
C'est dommage que je ne devrais pas compiler le défi à la lettre: ///, 46 octetsIt's the current year already, folks, go home.
Camarade SparklePony
3
@steenbergh Si seulement l'école était comme ça le matin. xD: P
HyperNeutrino
Je pense que ce défi serait plus approprié s'il était "si ce n'est pas l'année en cours, produisez ceci, sinon ne produisez rien", mais toujours un bon défi +1
Tas

Réponses:

18

bash + date, 40 octets

date +"It's %Y already, folks, go home."

Essayez-le en ligne!

fergusq
la source
1
Fonctionne également avec ZSH
german_guy
Cela fonctionne sur presque tous les shell, mais je l'ai nommé bash parce que le lien TIO est bash.
fergusq
17

C (gcc), 58 octets

f(){printf("It's%s already, folks, go home.",__DATE__+6);}
orlp
la source
19
Notez que vous devez recompiler cela une fois par an pour obtenir les fonctionnalités correctes.
Robert Fraser
3
@RobertFraser Pour exécuter une réponse C (gcc) sur ce site, vous l'exécutez en tant que gcc golf.c && ./a.out. Que dans ce processus un binaire soit formé n'est pas pertinent pour le golf de code. Mon code source est évalué, pas le binaire généré (si tel était le cas, ma réponse serait x86-64).
orlp
1
C'est vrai, mais ce n'est pas "un programme AC qui produira la sortie souhaitée" mais "Une commande shell qui produira la sortie souhaitée"
Elazar
2
@ 12431234123412341234123 Les fonctions sont des réponses acceptables ici sur codegolf.
orlp
1
Nitpickers ... @orlp, puisqu'il __DATE__[6]s'agit d'un espace, vous pouvez épargner un octet: ..."It's%s already, folks, go home.",__DATE__+6);}( faites attention à l'espace manquant entre It's et %s).
YSC
15

05AB1E , 21 20 octets

Un octet enregistré grâce à Erik l'Outgolfer

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

Essayez-le en ligne!

Emigna
la source
1
Je pense que vous confondiez 05AB1E avec Jelly, qui a une “...»syntaxe pour les chaînes compressées et »ne peut en aucun cas être supprimée.
Erik the Outgolfer du 1er
3
Ceci est la seule solution sans texte lisible :(
boboquack
1
Explication s'il vous plait?
ckjbgames
2
@ckjbgames built-in dictionary
qwr
@boboquack Oui, It's est lisible. Pour le reste, faites -le .
user202729
14

TeX (44 octets)

It's \the\year\ already, folks, go home.\bye
Will Robertson
la source
11

PHP, 42 octets

It's <?=date(Y)?> already, folks, go home.
user63956
la source
Je suis sûr que vous avez besoin de devis autour du Y.
Micheal Johnson
3
@MichealJohnson PHP convertira les constantes non reconnues en chaînes avec la même valeur, donc cela devrait fonctionner (mais cela enverra un avis)
Erik
7
@MichealJohnson Vous n'êtes jamais sûr avec PHP
Charlie
8

Bash, 45 caractères

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

La printfversion 4.2 intégrée de Bash a obtenu le %(fmt)Tspécificateur de format et depuis la version 4.3, il utilise par défaut l'horodatage actuel en l'absence d'argument.

Échantillon échantillon:

bash-4.3$ printf "It's %(%Y)T already, folks, go home."
It's 2017 already, folks, go home.
homme au travail
la source
6

Lot, 45 octets

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

Le lot est en fait raisonnablement compétitif pour une fois.

Neil
la source
1
Je suppose que le résultat de cette solution varie selon les différents paramètres régionaux ...
stevefestl
6

Mathematica, 53 octets

Print["It's ",Now[[1,1]]," already, folks, go home."]
Martin Ender
la source
3
Lit comme "C'est maintenant déjà, les gens, rentrez chez vous."
Roman Gräf
5

code machine x86 sous DOS - 62 octets

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

Même si l'entrée du BIOS est en BCD (par opposition à la valeur 16 bits simple obtenue de l'appel DOS équivalent), le décoder en ASCII s'est avéré être presque aussi long que la base-10 pour imprimer un registre. Tant pis.

    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.$"
Matteo Italia
la source
4

Rubis, 52 octets

puts"It's #{Time.now.year} already, folks, go home."
dkudriavtsev
la source
4

Mathematica, 58 octets

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

Fonction anonyme. Ne prend aucune entrée et renvoie une chaîne en sortie. Non, je ne ferai pas de soumission REPL, postez-la vous-même si cet octet est si important.

LegionMammal978
la source
3

Perl 6 ,  53  51 octets

say "It's {Date.today.year} already, folks, go home."

L'essayer

say "It's {now.Date.year} already, folks, go home."

L'essayer

Brad Gilbert b2gills
la source
3

TI-Basic (TI-84 Plus CE avec OS 5.2+), 64 octets

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

TI-Basic est un langage tokenisé. Certaines commandes ( getDate, toString(, etc.), et toutes les lettres minuscules sont deux octets et tout le reste utilisé ici est un octet chacun.

Explication:

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

TI-Basic (TI-84 Plus CE avec OS 5.1), 108 octets

{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 est un langage tokenisé. Les variables utilisateur plus compliquées ( , , , ), certaines commandes ( , , , , ), et toutes les lettres minuscules sont et tout le reste utilisé ici est un octet chacun deux octets.Y1L1L2Str0LinReg(ax+b getDatesub(Equ►String(length(

OS 5.2 a ajouté une toString(commande, qui rend obsolète environ la moitié de cette soumission, qui est basée sur cet algorithme .

Explication:

{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
pizzapants184
la source
vous pouvez intégrer L_1 dans les programmes 5.1. se débarrasse d'une nouvelle ligne, de deux jetons "L_1" et d'un →. 6 octets enregistrés?
frappant le
@striking LinReg(ax+b)utilise L_1 et L_2, je dois donc les définir tous les deux.
pizzapants184
Enregistrez quelques octets sur le premier: utilisez max(getDate)plutôt car le plus grand nombre dans getDate est toujours l'année.
lirtosiast
3

JavaScript ES6, 56 octets

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

Essayez-le en ligne!

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

console.log(f())

Powelles
la source
+1 Exactement la solution que j'allais publier. Vous pouvez également utiliser substr(11,4)ou à la slice(11,15)place de split.
Shaggy
N'avez-vous pas besoin de plus de 56 octets dans le cadre du défi de le produire?
cnorthfield
3
@cnorthfield D'une manière générale dans le golf de code, une fonction qui renvoie une valeur est une réponse acceptable, sauf si la question a des exigences plus spécifiques. Découvrez ceci et cela .
powelles
@powelles Merci d'expliquer
cnorthfield
C'est vrai @powelles, mais votre réponse ne retourne rien à moins que plus ne soit ajouté à votre golf.
Kyle Fairns du
3

PowerShell 3.0, 44 octets

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

PowerShell est assez compétitif aujourd'hui!

Nacht - Rétablir Monica
la source
1
Cela ne fonctionnera pas dans la version 2 de PowerShell (la syntaxe foreach). Vous devriez donc avoir un identifiant v3 + ici. Cool autrement.
Matt
2

C #, 58 octets

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

Fonction anonyme qui renvoie la chaîne requise.

Programme complet:

using System;

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

        Console.WriteLine(f());
    }
}
adrianmp
la source
6
Je pense que vous pouvez enregistrer des caractères en utilisant des chaînes C # 6: $ "C'est {DateTime.Now.Year} etc etc".
Arturo Torres Sánchez
()=>$"It's {DateTime.Now.Year} already, folks, go home.";57
wertzui
2

Pyth , 38 octets

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

Interprète en ligne.

Erik le golfeur
la source
Même longueur: s["It's ".d3d." y\n9?}7Tè+1°Õh6%Ñ< (Si vous remplacez \npar une nouvelle ligne réelle) lien
KarlKastor
@KarlKastor Comment cela a-t-il fonctionné pour vous?
Erik the Outgolfer
Ne saisissez pas tout à fait la question. J'ai utilisé l' interprète en ligne . L'algorithme pour créer des chaînes de pyth emballées. "Est:+++\.N++hSzeSzCi-RChSzCMz-hCeSzChSzN
KarlKastor
@KarlKastor Je l'ai utilisé, mais ce doit être quelque chose dans Chrome, et je doute fortement que ce soit les caractères imprimables non imprimables.
Erik the Outgolfer
2

Haskell , 113 octets

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

Essayez-le en ligne! Remplacez fpar mainpour un programme complet.

La fonction getCurrentTimerenvoie un UTCTimeobjet qui ressemble à quelque chose "2017-04-02 10:22:29.8550527 UTC"lorsqu'il est converti en chaîne par show. fst.span(>'-')prend les personnages principaux alors qu'ils sont plus grands que '-', c'est l'année en cours. Pour les 7972 prochaines années, take 4cela fonctionnerait pour 8 octets de moins, mais nous voulons que notre code fonctionne correctement pour toujours.

Pour autant que je vois, les fonctions intégrées pour obtenir l'année en cours nécessitent un import Data.Time.Calendar, donc extraire l'année de la chaîne devrait être l'option la plus courte.

Laikoni
la source
2

JavaScript, 77 71 67 63 octets

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

Merci à @ programmer5000 pour les espaces!

JavaScript ES6 66 60 octets

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

cnorthfield
la source
Bienvenue chez PPCG! Veuillez jouer votre réponse (supprimez les espaces autour du +s!)
programmer5000
1
console.log("It's",new Date().getFullYear(),"already, folks, go home.")pour 71 octets
ovs
@ fəˈnɛtɪk est revenu à console.log, a ajouté des crochets à l'alerte
ES6
2

R, 62 59 62 octets

cat("It's",format(Sys.time(),"%Y"),"already, folks, go home.")
Zahiro Mor
la source
1
Utiliser substr(date(),21,24)au lieu d' format(Sys.time(),"%Y")enregistrer trois octets
bouncyball
cela fonctionne-t-il dans l'année 20017?
Roman Gräf
Ahh Correct. Revenant en arrière. Tnx !!
Zahiro Mor
2

Befunge-98 , 57 55 octets

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

Essayez-le en ligne!

Merci à James Holderness d'avoir signalé mon erreur avec l'instruction sysinfo.

"emoh og ,sklof ,ydaerla@ s'tI"pousse la phrase dans la pile où 4k,imprime le premier mot. yest l'instruction sysinfo. Une fois passé 20 (l'imprimable dans la chaîne), il revient 256*256*(year-1900) + 256*month + day of month. \4*:*/"&2"*+.prend juste l'année de la valeur et l'imprime et f7+k,imprime le reste de la phrase.

Jo King
la source
@JamesHolderness Arghhh, cela explique pourquoi je n'ai jamais réussi à faire fonctionner sysinfo. Merci beaucoup!
Jo King
1

MATL , 42 octets

'It''s '1&Z'V' already, folks, go home.'&h

Essayez-le en ligne!

'It''s '                      % Push this string
1&Z'                          % Push current year
V                             % Convert to string
' already, folks, go home.'   % Push this string
&h                            % Concatenate all stack contents horizontally
                              % Implicitly display
Luis Mendo
la source
1

Python 3, 73 68 octets

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

Réponse très basique. Le "% Y" obtient l'année en cours.

Merci à @ovs d'avoir supprimé 5 octets

caird coinheringaahing
la source
Économisez 6 octets avecprint(f"It's {time.gmtime()[0]} already, go home")
L3viathan
@ L3viathan c'est trop similaire à l'autre réponse Python
caird coinheringaahing
1

Formule IBM / Lotus Notes, 54 octets

Pas vraiment difficile mais c'est parti quand même ...

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

Java 8, 81 78 octets

()->System.out.print("It's "+java.time.Year.now()+" already, folks, go home.")
Khaled.K
la source
1
Vous n'avez pas besoin du point-virgule à la fin d'un lambda, et print ou printf sera plus court que println.
Pavel
1

T-SQL, 66 octets

print concat('It''s ',year(getdate()),' already, folks, go home.')
Nelz
la source