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.


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:



17

C (gcc), 58 octets

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

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!


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


11

PHP, 42 octets

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

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.

6

Lot, 45 octets

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

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


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

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




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.



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

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


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


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

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.


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.


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


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

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.


@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

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


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

1

Java 8, 81 78 octets

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

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.')
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.