Ya es [año actual], amigos, vete a casa

31

En la mayoría desafíos de año nuevo cuando actualmente no es el año correspondiente del desafío, lo dice al frente.

Ya es [año actual], amigos, ve a casa.

Debe enviar este texto con el año actual sustituido.


I / O

Entrada: ninguna.

Salida : It's [year] already, folks, go home.con [año] cambiado al año actual.

Matthew Roh
fuente
17
Primera prueba, obtuve la hora en lugar de la fecha: ya son las 8:58, amigos, vete a casa.
steenbergh 01 de
¿Puedo tomar información y luego ignorarla (es decir, hacer algo String goHome(Object foo){return "It's "+currentYear()+" already, folks, go home.";}similar a (pero mucho más corto, por supuesto))?
dorukayhan quiere que Monica regrese el
Es una pena que no compile el desafío literalmente: ///, 46 bytesIt's the current year already, folks, go home.
Comrade SparklePony
3
@steenbergh Si la escuela fuera así por la mañana. xD: P
HyperNeutrino
Creo que este desafío sería más apropiado si fuera "si no es el año en curso, produzca este, de lo contrario no producirá nada", pero sigue siendo un buen desafío +1
Tas

Respuestas:

18

bash + fecha, 40 bytes

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

Pruébalo en línea!

fergusq
fuente
1
También funciona con ZSH
german_guy
Funciona en casi todos los shell, pero lo llamé bash porque el enlace TIO es bash.
fergusq
17

C (gcc), 58 bytes

f(){printf("It's%s already, folks, go home.",__DATE__+6);}
orlp
fuente
19
Tenga en cuenta que necesita volver a compilar esto una vez al año para obtener la funcionalidad correcta.
Robert Fraser
3
@RobertFraser Para ejecutar cualquier respuesta C (gcc) en este sitio, se ejecuta como gcc golf.c && ./a.out. Que en este proceso se forme un binario es irrelevante para el golf de código. Se está juzgando mi código fuente, no el binario generado (si ese fuera el caso, mi respuesta sería x86-64).
orlp
1
Es cierto, pero esto no es "un programa de CA que producirá la salida deseada" sino "Un comando de shell que producirá la salida deseada"
Elazar
2
@ 12431234123412341234123 Las funciones son respuestas aceptables aquí en codegolf.
orlp
1
Nitpickers ... @orlp, dado que __DATE__[6]es un espacio, puede ahorrar un byte: ..."It's%s already, folks, go home.",__DATE__+6);}( tenga en cuenta el espacio que falta entre It's y %s).
YSC
15

05AB1E , 21 20 bytes

Salvó un byte gracias a Erik the Outgolfer

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

Pruébalo en línea!

Emigna
fuente
1
Creo que confundiste 05AB1E con Jelly, que tiene “...»sintaxis para cadenas comprimidas y »no se puede suprimir en ningún caso.
Erik the Outgolfer
3
Esta es la única solución sin texto legible :(
boboquack
1
¿Explicación por favor?
ckjbgames
2
@ckjbgames diccionario
incorporado
@boboquack Sí, It's es legible. Por lo demás, haz esto .
user202729
14

TeX (44 bytes)

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

PHP, 42 bytes

It's <?=date(Y)?> already, folks, go home.
usuario63956
fuente
Bastante seguro de que necesita citas en todo el Y.
Micheal Johnson el
3
@MichealJohnson PHP convertirá constantes no reconocidas en cadenas con el mismo valor, por lo que esto debería funcionar (pero arrojará un aviso)
Erik
77
@MichealJohnson Nunca estás seguro con PHP
Charlie
8

Bash, 45 caracteres

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

La printfversión 4.2 incorporada de Bash obtuvo el %(fmt)Tespecificador de formato y, desde la versión 4.3, el valor predeterminado es la marca de tiempo actual en ausencia de argumento.

Ejecución de muestra:

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

Lote, 45 bytes

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

Batch es en realidad razonablemente competitivo por una vez.

Neil
fuente
1
Supongo que el resultado de esta solución varía según la configuración regional ...
stevefestl
6

Mathematica, 53 bytes

Print["It's ",Now[[1,1]]," already, folks, go home."]
Martin Ender
fuente
3
Se lee como "Ya es ahora, amigos, vayan a casa".
Roman Gräf
5

código de máquina x86 en DOS - 62 bytes

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

A pesar de que la entrada del BIOS está en BCD (a diferencia del valor de 16 bits obtenido de la llamada DOS equivalente), la decodificación a ASCII resultó ser casi tan larga como la base 10 imprimiendo un registro. Oh bien.

    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
fuente
4

Ruby, 52 bytes

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

Mathematica, 58 bytes

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

Función anónima. No realiza ninguna entrada y devuelve una cadena como salida. No, no voy a hacer un envío REPL, publíquelo usted mismo si ese byte es tan importante.

LegionMammal978
fuente
3

Perl 6 ,  53  51 bytes

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

Intentalo

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

Intentalo

Brad Gilbert b2gills
fuente
3

TI-Basic (TI-84 Plus CE con OS 5.2+), 64 bytes

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

TI-Basic es un lenguaje tokenizado. Algunos comandos ( getDate, toString(, etc.), y todas las letras minúsculas son de dos bytes y todo lo demás se utiliza aquí es un byte cada uno.

Explicación:

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 con OS 5.1), 108 bytes

{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 es un lenguaje tokenizado. Las variables de usuario más complicado ( , , , ), algunos comandos ( , , , , ), y todas las letras minúsculas son de dos bytes y todo lo demás se utiliza aquí es un byte cada uno.Y1L1L2Str0LinReg(ax+b getDatesub(Equ►String(length(

El sistema operativo 5.2 agregó un toString(comando, que deja obsoleta aproximadamente la mitad de este envío, que se basa en este algoritmo .

Explicación:

{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
fuente
puede alinear L_1 en los programas 5.1. se deshace de una nueva línea, dos tokens "L_1" y un →. 6 bytes guardados?
llamativo
@striking LinReg(ax+b)usa L_1 y L_2, así que tengo que configurarlos a ambos.
pizzapants184 01 de
Guarde algunos bytes en el primero: use max(getDate)en su lugar porque el número más grande en getDate siempre es el año.
lirtosiast el
3

JavaScript ES6, 56 bytes

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

Pruébalo en línea!

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

console.log(f())

Powelles
fuente
+1 Exactamente la solución que estaba a punto de publicar. También podría usar substr(11,4)o en slice(11,15)lugar de split.
Shaggy
¿No requiere más de 56 bytes, ya que parte del desafío es generarlo?
cnorthfield
3
@cnorthfield Generalmente hablando en código golf, una función que devuelve un valor es una respuesta aceptable a menos que la pregunta tenga requisitos más específicos. Mira esto y esto .
Powelles
@powelles Gracias por explicarnos
cnorthfield
Eso es cierto @powelles, pero su respuesta no devuelve nada a menos que se agregue más a su golf.
Kyle Fairns
3

PowerShell 3.0, 44 bytes

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

¡PowerShell está compitiendo bastante bien hoy!

Nacht - Restablece a Monica
fuente
1
Esto no funcionará en la versión 2 de PowerShell (la sintaxis foreach). Entonces debería tener un identificador v3 + aquí. Genial de otra manera.
Matt
2

C #, 58 bytes

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

Función anónima que devuelve la cadena requerida.

Programa completo:

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
fuente
66
Creo que puede guardar caracteres usando cadenas de C # 6: $ "Es {DateTime.Now.Year} etc, etc.".
Arturo Torres Sánchez
()=>$"It's {DateTime.Now.Year} already, folks, go home.";57
wertzui
2

Pyth , 38 bytes

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

Intérprete en línea

Erik el Outgolfer
fuente
Mismo tiempo: s["It's ".d3d." y\n9?}7Tè+1°Õh6%Ñ< (si lo reemplaza \npor una nueva línea real) enlace
KarlKastor
@KarlKastor ¿Cómo funcionó eso para ti?
Erik the Outgolfer
No entiendo la pregunta. Usé el intérprete en línea . El algoritmo para crear cadenas de Pyth's. "Es:+++\.N++hSzeSzCi-RChSzCMz-hCeSzChSzN
KarlKastor
@KarlKastor Lo usé, pero debe ser algo en Chrome, y dudo mucho que sean los caracteres imprimibles y no imprimibles.
Erik the Outgolfer
2

Haskell , 113 bytes

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

Pruébalo en línea! Reemplazar fcon mainun programa completo.

La función getCurrentTimedevuelve un UTCTimeobjeto que se parece a algo "2017-04-02 10:22:29.8550527 UTC"cuando se convierte en una cadena show. fst.span(>'-')toma los personajes principales mientras son más grandes que '-', ese es el año actual. Durante los siguientes 7972 años take 4funcionaría con 8 bytes menos, pero queremos que nuestro código funcione correctamente para siempre.

Por lo que veo, las funciones incorporadas para obtener el año actual requieren un import Data.Time.Calendar, por lo que extraer el año de la cadena debería ser la opción más corta.

Laikoni
fuente
2

JavaScript, 77 71 67 63 bytes

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

¡Gracias a @ programmer5000 por los espacios!

JavaScript ES6 66 60 bytes

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

Cnorthfield
fuente
Bienvenido a PPCG! Por favor, defina su respuesta (¡elimine los espacios alrededor del +s!)
programmer5000
1
console.log("It's",new Date().getFullYear(),"already, folks, go home.")por 71 bytes
ovs
@ fəˈnɛtɪk volvió a console.log, agregó corchetes a la alerta de ES6
cnorthfield
2

R, 62 59 62 bytes

cat("It's",format(Sys.time(),"%Y"),"already, folks, go home.")
Zahiro Mor
fuente
1
Usar en substr(date(),21,24)lugar de format(Sys.time(),"%Y")
guardar
funciona esto en año 20017?
Roman Gräf
Ahh Correcto. Volviendo atrás. Tnx !!
Zahiro Mor
2

Befunge-98 , 57 55 bytes

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

Pruébalo en línea!

Gracias a James Holderness por señalar mi error con la instrucción sysinfo.

"emoh og ,sklof ,ydaerla@ s'tI"empuja la oración a la pila donde 4k,imprime la primera palabra. yes la instrucción sysinfo. Cuando se pasa 20 (el no imprimible en la cadena), vuelve 256*256*(year-1900) + 256*month + day of month. \4*:*/"&2"*+.toma solo el año del valor y lo imprime e f7+k,imprime el resto de la oración.

Jo King
fuente
@JamesHolderness Arghhh, eso explica por qué nunca he podido hacer que sysinfo funcione. ¡Gracias un montón!
Jo King
1

MATL , 42 bytes

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

Pruébalo en línea!

'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
fuente
1

Python 3, 73 68 bytes

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

Respuesta muy básica. El "% Y" obtiene el año actual.

Gracias a @ovs por eliminar 5 bytes

caird coinheringaahing
fuente
Ahorre 6 bytes conprint(f"It's {time.gmtime()[0]} already, go home")
L3viathan
@ L3viathan es muy similar a la otra respuesta de Python
caird coinheringaahing
1

Fórmula IBM / Lotus Notes, 54 bytes

No es exactamente un desafío, pero aquí vamos de todos modos ...

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

Java 8, 81 78 bytes

()->System.out.print("It's "+java.time.Year.now()+" already, folks, go home.")
Khaled.K
fuente
1
No necesita el punto y coma al final de una lambda, y print o printf serán más cortos que println.
Pavel
1

T-SQL, 66 bytes

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