Sudah [tahun ini] sudah, teman-teman, pulanglah

31

Pada sebagian besar tantangan saat ini bukan tahun yang sesuai dengan tantangan, Ia mengatakan ini di depan.

Sudah [tahun ini] sudah, teman-teman, pulanglah.

Anda harus menampilkan teks ini dengan tahun berjalan diganti.


I / O

Input: Tidak Ada.

Output : It's [year] already, folks, go home.dengan [tahun] berubah ke tahun ini.

Matthew Roh
sumber
17
Uji coba pertama, dapatkan waktu alih-alih tanggal: Ini sudah 8:58, teman-teman, pulanglah.
steenbergh
Dapatkah saya mengambil input dan kemudian mengabaikannya (yaitu melakukan sesuatu di sepanjang garis String goHome(Object foo){return "It's "+currentYear()+" already, folks, go home.";}(tapi tentu saja jauh lebih pendek))?
dorukayhan ingin Monica kembali
Sayang sekali saya tidak harus menyusun tantangan untuk secara harfiah: ///, 46 byteIt's the current year already, folks, go home.
Kamerad SparklePony
3
@steenbergh Kalau saja sekolah seperti itu di pagi hari. xD: P
HyperNeutrino
Saya merasa tantangan ini akan lebih tepat jika itu adalah "jika bukan tahun ini, hasilkan ini, tidak menghasilkan apa-apa", tetapi tantangan masih bagus +1
Tas

Jawaban:

18

bash + date, 40 byte

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

Cobalah online!

fergusq
sumber
1
Juga bekerja dengan ZSH
german_guy
Ini berfungsi pada hampir setiap shell, tetapi saya menamakannya bash karena tautan TIO adalah bash.
fergusq
17

C (gcc), 58 byte

f(){printf("It's%s already, folks, go home.",__DATE__+6);}
orlp
sumber
19
Catatan Anda harus mengkompilasi ulang ini setahun sekali untuk mendapatkan fungsionalitas yang benar.
Robert Fraser
3
@RobertFraser Untuk menjalankan jawaban C (gcc) apa pun di situs ini, Anda menjalankannya sebagai gcc golf.c && ./a.out. Bahwa dalam proses ini biner terbentuk tidak relevan untuk kode golf. Kode sumber saya sedang dinilai, bukan biner yang dihasilkan (jika itu yang terjadi, jawaban saya adalah x86-64).
orlp
1
Benar, tapi ini bukan "program AC yang akan menghasilkan output yang diinginkan" tetapi "Sebuah perintah shell yang akan menghasilkan output yang diinginkan"
Elazar
2
@ 12431234123412341234123 Fungsi adalah jawaban yang dapat diterima di codegolf.
orlp
1
Nitpickers ... @orlp, karena __DATE__[6]adalah spasi, Anda dapat menyimpan satu byte: ..."It's%s already, folks, go home.",__DATE__+6);}(perhatikan ruang yang hilang antara Ini dan %s).
YSC
15

05AB1E , 21 20 byte

Menyimpan satu byte berkat Erik the Outgolfer

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

Cobalah online!

Emigna
sumber
1
Saya pikir Anda membingungkan 05AB1E dengan Jelly, yang memiliki “...»sintaks untuk string terkompresi dan »tidak dapat ditekan dalam hal apa pun.
Erik the Outgolfer
3
Ini adalah satu-satunya solusi tanpa teks yang dapat dibaca :(
boboquack
1
Penjelasannya tolong?
ckjbgames
2
@ckjbgames kamus
internal
@OBoquack Ya, It's bisa dibaca. Selebihnya lakukan ini .
user202729
14

TeX (44 bytes)

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

PHP, 42 byte

It's <?=date(Y)?> already, folks, go home.
pengguna63956
sumber
Cukup yakin Anda perlu penawaran di sekitar Y.
Micheal Johnson
3
@MichealJohnson PHP akan mengonversi konstanta yang tidak dikenal ke string dengan nilai yang sama, jadi ini seharusnya bekerja (tetapi akan memberikan pemberitahuan)
Erik
7
@MichealJohnson Anda tidak pernah yakin dengan PHP
Charlie
8

Bash, 45 karakter

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

Bash built-in printfdi versi 4.2 mendapat penentu %(fmt)Tformat dan sejak versi 4.3 itu default ke timestamp saat ini tanpa adanya argumen.

Contoh dijalankan:

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

Batch, 45 byte

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

Batch sebenarnya cukup kompetitif untuk sekali.

Neil
sumber
1
Saya kira hasil solusi ini bervariasi dari pengaturan lokal yang berbeda ...
stevefestl
6

Mathematica, 53 byte

Print["It's ",Now[[1,1]]," already, folks, go home."]
Martin Ender
sumber
3
Berbunyi seperti "Sekarang Sudah, teman-teman, pulanglah."
Roman Gräf
5

kode mesin x86 pada DOS - 62 byte

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

Meskipun input dari BIOS dalam BCD (sebagai lawan dari nilai 16 bit yang didapat dari panggilan DOS yang setara), mendekodekannya ke ASCII ternyata hampir sepanjang basis-10 mencetak register. Baiklah.

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

Ruby, 52 byte

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

CJam , 38 byte

"It's "et0=" already, folks, go home."

Cobalah online!

Erik the Outgolfer
sumber
4

Mathematica, 58 byte

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

Fungsi anonim. Tidak mengambil input dan mengembalikan string sebagai output. Tidak, saya tidak akan membuat pengiriman REPL, posting sendiri jika satu byte itu sangat penting.

LegionMammal978
sumber
3

Perl 6 ,  53  51 byte

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

Cobalah

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

Cobalah

Brad Gilbert b2gills
sumber
3

TI-Basic (TI-84 Plus CE dengan OS 5.2+), 64 byte

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

TI-Basic adalah bahasa tokenized. Beberapa perintah ( getDate,, toString(dll.), Dan semua huruf kecil adalah dua-byte dan semua yang digunakan di sini adalah masing-masing satu byte.

Penjelasan:

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 dengan OS 5.1), 108 byte

{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 adalah bahasa tokenized. Variabel pengguna yang lebih rumit ( , , , ), beberapa perintah ( , , , , ), dan semua huruf kecil dua-byte dan segala sesuatu yang lain yang digunakan di sini adalah salah satu byte setiap.Y1L1L2Str0LinReg(ax+b getDatesub(Equ►String(length(

OS 5.2 menambahkan toString(perintah, yang usang sekitar setengah dari pengajuan ini, yang didasarkan pada algoritma ini .

Penjelasan:

{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
sumber
Anda dapat sebaris L_1 dalam program 5.1. menghilangkan baris baru, dua token "L_1", dan →. 6 byte disimpan?
menyerang
@striking LinReg(ax+b)menggunakan L_1 dan L_2, jadi saya harus mengatur keduanya.
pizzapants184
Simpan beberapa byte pada yang pertama: gunakan max(getDate)sebagai gantinya karena jumlah terbesar di getDate selalu tahun.
lirtosiast
3

JavaScript ES6, 56 byte

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

Cobalah online!

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

console.log(f())

powelles
sumber
+1 Solusi tepat yang akan saya posting. Anda juga bisa menggunakan substr(11,4)atau slice(11,15)bukannya split.
Shaggy
Tidakkah Anda memerlukan lebih dari 56 byte sebagai bagian dari tantangannya adalah mengeluarkannya?
cnorthfield
3
@ cnorthfield Secara umum dalam kode golf, fungsi yang mengembalikan nilai adalah jawaban yang dapat diterima kecuali pertanyaannya memiliki persyaratan yang lebih spesifik. Lihat ini dan ini .
powelles
@powelles Terima kasih telah menjelaskan
cnorthfield
Itu @powelles benar, tetapi jawaban Anda tidak mengembalikan apa-apa kecuali lebih banyak ditambahkan ke golf Anda.
Kyle Fairns
3

PowerShell 3.0, 44 byte

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

PowerShell bersaing cukup baik hari ini!

Nacht - Pasang kembali Monica
sumber
1
Ini tidak akan berfungsi di versi 2 PowerShell (sintaksis muka). Jadi Anda harus memiliki pengidentifikasi v3 + di sini. Keren bijak lainnya.
Matt
2

C #, 58 byte

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

Fungsi anonim yang mengembalikan string yang diperlukan.

Program lengkap:

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
sumber
6
Saya pikir Anda dapat menyimpan karakter dengan menggunakan string C # 6: $ "Ini {DateTime.Now.Year} dll dll".
Arturo Torres Sánchez
()=>$"It's {DateTime.Now.Year} already, folks, go home.";57
wertzui
2

Pyth , 38 byte

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

Penerjemah online.

Erik the Outgolfer
sumber
Panjang yang sama: s["It's ".d3d." y\n9?}7Tè+1°Õh6%Ñ< (Jika Anda mengganti \noleh baris baru yang sebenarnya) Link
KarlKastor
@ Kararlast Bagaimana cara kerjanya untuk Anda?
Erik the Outgolfer
Tidak cukup mendapatkan pertanyaan. Saya menggunakan penerjemah online . Algoritma untuk membuat string pyth's dikemas. "Adalah:+++\.N++hSzeSzCi-RChSzCMz-hCeSzChSzN
KarlKastor
@KarlKastor saya menggunakan itu, tetapi pasti ada sesuatu di Chrome, dan saya sangat ragu itu adalah karakter yang tidak dapat dicetak yang dapat dicetak.
Erik the Outgolfer
2

Haskell , 113 byte

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

Cobalah online! Ganti fdengan mainuntuk program lengkap.

Fungsi getCurrentTimemengembalikan UTCTimeobjek yang terlihat seperti "2017-04-02 10:22:29.8550527 UTC"ketika dikonversi ke string oleh show. fst.span(>'-')mengambil karakter utama sementara mereka lebih besar dari '-', yaitu tahun ini. Untuk 7972 tahun mendatang take 4akan bekerja kurang dari 8 byte, tetapi kami ingin kode kami berfungsi dengan benar untuk selamanya.

Sejauh yang saya lihat fungsi built-in untuk mendapatkan tahun saat ini memerlukan import Data.Time.Calendar, jadi mengekstraksi tahun dari string harus menjadi pilihan terpendek.

Laikoni
sumber
2

JavaScript, 77 71 67 63 byte

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

Terima kasih kepada @ programmer5000 untuk ruangnya!

JavaScript ES6 66 60 byte

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

cnorthfield
sumber
Selamat datang di PPCG! Silakan berikan jawaban Anda (singkirkan spasi di sekitar +!)
programmer5000
1
console.log("It's",new Date().getFullYear(),"already, folks, go home.")untuk 71 byte
ov
@ fəˈnɛtɪk dikembalikan kembali ke console.log, menambahkan tanda kurung ke peringatan
ES6
2

R, 62 59 62 byte

cat("It's",format(Sys.time(),"%Y"),"already, folks, go home.")
Zahiro Mor
sumber
1
Menggunakan substr(date(),21,24)alih-alih format(Sys.time(),"%Y")menghemat tiga byte
bouncyball
apakah ini bekerja pada tahun 20017?
Roman Gräf
Ahh. Benar. Mengembalikan. Tnx !!
Zahiro Mor
2

Befunge-98 , 57 55 byte

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

Cobalah online!

Terima kasih kepada James Holderness karena menunjukkan kesalahan saya dengan instruksi sysinfo.

"emoh og ,sklof ,ydaerla@ s'tI"mendorong kalimat ke tumpukan tempat 4k,mencetak kata pertama. yadalah instruksi sysinfo. Ketika melewati 20 (yang tidak dicetak dalam string), ia kembali 256*256*(year-1900) + 256*month + day of month. \4*:*/"&2"*+.hanya membutuhkan satu tahun dari nilai dan mencetaknya serta f7+k,mencetak sisa kalimat.

Jo King
sumber
@ JamesHolderness Arghhh, itu menjelaskan mengapa saya tidak pernah bisa membuat sysinfo bekerja. Terima kasih banyak!
Jo King
1

MATL , 42 byte

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

Cobalah online!

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

Python 3, 73 68 byte

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

Jawaban yang sangat mendasar. "% Y" mendapatkan tahun ini.

Terima kasih kepada @ovs karena menghapus 5 byte

caird coinheringaahing
sumber
Hemat 6 byte denganprint(f"It's {time.gmtime()[0]} already, go home")
L3viathan
@ L3viathan itu terlalu mirip dengan jawaban Python lainnya
caird coinheringaahing
1

IBM / Lotus Notes Formula, 54 byte

Tidak sepenuhnya menantang tetapi di sini kita tetap pergi ...

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

Java 8, 81 78 byte

()->System.out.print("It's "+java.time.Year.now()+" already, folks, go home.")
Khaled.K
sumber
1
Tidak perlu titik koma di akhir lambda, dan baik cetak atau printf akan lebih pendek dari println.
Pavel
1

T-SQL, 66 byte

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