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.


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!


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

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!


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


11

PHP, 42 byte

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

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.

6

Batch, 45 byte

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

Batch sebenarnya cukup kompetitif untuk sekali.


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

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




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.



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

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


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


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

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.


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.


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


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

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.


@ 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

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


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

1

Java 8, 81 78 byte

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

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.')
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.