Buon compleanno a me!


21

Buon compleanno a me!

Scrivi un programma che stampa Happy birthday to me!il giorno del suo compleanno.

  1. La data di nascita del programma è la creazione, l'ultima modifica o il tempo di compilazione del programma (a scelta) e non devono essere codificati.
  2. La data utilizzata come data di nascita non deve essere influenzata in alcun modo dall'invocazione o esecuzione del programma. Non puoi modificare il tuo compleanno.
  3. Per ulteriore credito (conteggio dei byte di -15%), stampa per Happy birthday to you!il tuo compleanno (hard coded), se non coincide con quello del programma. Oppure usa il compleanno di alcune celebrità e ottieni il -14%.
  4. Deve stampare solo questo e non stampare nulla in nessun altro giorno.
  5. Conta byte, in UTF-8.
  6. Usa il calendario gregoriano.

Buona fortuna e buon compleanno (ai programmi per neonati).

PS
Dopo il commento di Izkata, se stampi Happy birthday to Melper il compleanno di Mel Kaye , ricevi uno sconto del 20%. Ma devi fornire una fonte credibile che sia questa data.


1
@TeunPronk, Non puoi fare entrambe le cose. Utilizza il tuo compleanno o quello di una celebrità (o nessuno) e rinuncia al credito extra).
— Ugoren,

4
@TeunPronk: Solo Jon Skeet può: P
— MSalters il

11
L'ho visto nella barra laterale Domande frequenti e ho letto "Happy Birthday to Mel " ...
— Izkata,

1
@PeterTaylor: Huh? Assegnare vari tipi di bonus per le funzionalità extra è abbastanza comune per le domande sul code-golf , e non ho mai visto nessuno affermare che avrebbe squalificato una domanda dall'uso di quel tag, purché il criterio di punteggio principale sia la lunghezza del codice.
— Ilmari Karonen,

1
@Izkata, aggiornata la domanda in onore di Mel.
— ugoren,

Risposte:


10

PHP 77 75 74 65 60

Mille grazie ai superbi suggerimenti di Tim Seguine :

<?date(dm,getlastmod())-date(dm)&&die?>Happy birthday to me!

PHP subdolo: 46 42 41 40

Usando l'idea di Phil H e ancora il suggerimento di Tim Seguine :

<?touch(__FILE__)?>Happy birthday to me!

Non include l'anno nel confronto? in tal caso, funziona solo il 0 ° compleanno.
— ugoren,

@ugoren Hai ragione! Grazie per la correzione. 2 byte salvati.
— ComFreek,

Se "non preme nulla" nelle regole viene interpretato come output standard, allora potresti vincere 4 byte rimuovendo ''le dmstringhe attorno . Ha generato un avviso, ma credo che venga inviato all'errore standard se la segnalazione errori è attiva.
— Tim Seguine,

4
<?date(dm,stat(__FILE__)[9])-date(dm)&&die?>Happy birthday to me!
— Tim Seguine,

1
@TimSeguine Grazie per i tuoi suggerimenti! Li ho incorporati nella mia risposta, spero che non ti dispiaccia.
— ComFreek

48

Bash (subdolo): 36

touch $0;echo Happy Birthday to me\!

Secondo le regole: "tempo di creazione, modifica o compilazione del programma". Scelgo il tempo di modifica e un'auto-modifica perpetua. [HT @ace per 1 carattere]

Perl (anche subdolo): 29

print "Happy birthday to me!"

Questo è probabilmente meno subdolo del primo; I programmi Perl vengono sempre compilati prima di essere eseguiti, cosa che non tutti sanno - vedi, c'è una svolta educativa sulla furtività. Quindi ecco la data della compilation che sto usando.

- Modifica per cambio regola -

Questo è stato scritto prima che ci fosse una regola per cambiare il tuo compleanno. Penso che il Perl sia ancora in piedi; tutti i programmi Perl vengono compilati prima di essere eseguiti. Lascio qui la risposta per motivi educativi!


6
Ok, imbroglione, prendi il mio +1 per l'intelligenza.
— Victor Stafusa,

1
Puoi sfuggire al !con \!e rimuovere le virgolette per salvare 1 carattere
— user12205

1
Bel trucco, ma le regole lo vietano esplicitamente (ora).
— ugoren,

1
@ugoren Ancora non vieta la soluzione perl, che viene compilato prima che il programma si avvia .
— Cruncher,

3
@ Cruncher, temo che tu abbia ragione. Consulterò il mio avvocato e ti invierò il conto.
— Ugoren,

13

bash - 65

[ `date +%d%m -r $0` = `date +%d%m` ]&&echo Happy birthday to me!

Grazie a ugoren , ace e nyuszika7h per l'aiuto.


Penso che puoi sfuggire al !con \!così non hai bisogno delle virgolette e risparmia 1 carattere.
— user12205

In realtà avevo le virgolette poiché pensavo che l'eco le avrebbe richieste per gli spazi. Li ho tolti e non sono sfuggito al punto esclamativo e ha funzionato ancora. Grazie per il consiglio!
— shiona,

2
Devi solo scappare !nelle shell interattive, non negli script.
— nyuszika7h,

È possibile salvare due caratteri utilizzando [e ]anziché [[e ]].
— nyuszika7h,

1
Funziona quando l'anno non coincide con la data di creazione?
— ugoren,

6

C # 198.05 (233-15%)

using s=System;class P{static void Main(){string t=s.DateTime.Now.ToString("Mdd"),b="1202";if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==t|b==t)s.Console.Write("Happy birthday to "+(b==t?"you!":"me!"));}}

formattato:

using s = System;
class P
{
    static void Main()
    {
        string t = s.DateTime.Now.ToString("Mdd"), b = "1202";
        if (s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd") == t | b == t)
            s.Console.Write("Happy birthday to " + (b == t ? "you!" : "me!"));
    }
}

191 (Nessun bonus)

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

181,05 (213-15%)

Con alcune istruzioni aggiuntive (è necessario compilare questo b.exeed eseguirlo dalla directory in cui si trova l'eseguibile) Posso arrivare a questo:

using s=System;class P{static void Main(){string t=s.DateTime.Now.ToString("Mdd"),b="1202";if(s.IO.File.GetCreationTime("b.exe").ToString("Mdd")==t|b==t)s.Console.Write("Happy birthday to "+(b==t?"you!":"me!"));}}

171 (nessun bonus)

Stesse istruzioni di cui sopra, questa volta stampa solo un messaggio per il proprio compleanno (quindi nessun bonus del -15%).

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime("b.exe").ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

È possibile salvare pochi byte in quelli bonus aggiungendo ,b="1202"==tdopo aver ottenuto la stringa della data e utilizzandola invece.
— ahruss,

1
Grazie! Anche se "pochi byte" risulta essere uno ... o mi sto perdendo qualcosa? Modifica Ah, capisco; hai detto ,b="1202"==tma la ==tparte non è possibile in quanto restituisce un valore bool e l'altra var è una stringa. Non è possibile (ovvero AFAIK) utilizzare due diversi tipi in una dichiarazione "var".
— RobIII,

Ah ok. È da un po 'che non uso C #. Colpa mia.
— ahruss,

Puoi abbreviare la versione più semplice confrontando le date, non le stringhe. Questo uomo usa qualcosa di simile CreationTime.Date == DateTime.Today.
— svick,

Funzionerebbe solo per oggi / quest'anno / compleanno 0. Come funzionerebbe per altri anni?
— RobIII,

5

Java - 275-15% = 233.75 con bonus / 237 senza bonus

Con bonus:

import java.util.*;class L{public static void main(String[]y){int s=f(new Date());String j="Happy birthday to ";System.out.print(s==f(new Date(new java.io.File("L.class").lastModified()))?j+"me!":s==183?j+"you!":"");}static int f(Date d){return d.getMonth()*40+d.getDate();}}

Senza il bonus:

import java.util.*;class L{public static void main(String[]y){if(f(new Date())==f(new Date(new java.io.File("L.class").lastModified())))System.out.print("Happy birthday to me!");}static int f(Date d){return d.getMonth()*40+d.getDate();}}

Sono nato il 23 aprile.


1
Buon compleanno a , non per ;-) Ti ho appena salvato un altro byte :-)
— RobIII,

@RobIII Grazie, risolto.
— Victor Stafusa,

Inoltre, la nuova riga ( \n) non è richiesta AFAIK che consente di risparmiare altri 4 byte ;-)
— RobIII

@RobIII Grazie ancora.
— Victor Stafusa,

Sì ... dovrei smettere di sparare al mio piede: P
— Prego

3

Sono abbastanza orgoglioso di questo piccolo trucco per salvare qualche byte sul messaggio. Spero che sia incluso in altre risposte. Sono stato il primo a pensarci!

Pitone

105 caratteri, nessun credito extra. Salvare il file come "tanti auguri a me" ed eseguirlo. Viene eseguito solo in GMT e "compleanno" è definito come la data della tua nascita, non è un anniversario (spesso si chiama anche "compleanno").

import sys,os,time
if (int(os.stat(*sys.argv).st_atime/86400)==int(time.time()/86400)):print sys.argv[0]

Affinché funzioni, salvalo come "tanti auguri a me" ed eseguilo python "happy birthday to me"

Nota: ovviamente, tutto tranne un piccolo bootstrap potrebbe trovarsi nel nome del file, facendo ridurre qualsiasi codice arbitrariamente grande al bootstrap. Normalmente considererei questo "imbroglio". Tuttavia, "buon compleanno a me" non è un nome di file irragionevole - descrive ciò che fa il programma, molto meglio di alcuni programmi (ad esempio "python"), quindi in questo caso lo permetterò :)


Penso che basarsi sul nome del file sia barare (anche se non l'ho proibito esplicitamente). Se è permesso, perché non scrivere eval(sys.argv[0])?
— Ugoren,

E non mi sono preoccupato di definire un compleanno, ma è un giorno che arriva una volta all'anno quando una persona celebra l'anniversario della sua nascita , non il giorno esatto in cui sei nato.
— ugoren,

ugoren: L'ho menzionato nella mia nota in fondo (che precede il tuo commento). However, "happy birthday to me" is not an unreasonable filename - it describes what the program does, much better than some programs (e.g. "python"), so in this case I'm going to allow it
— AMADANON Inc.,

2

Matlab: 66

t=dir('f.m');if strncmp(t.date,date,5),'Happy birthday to me!',end

Il nome del file deve essere 'fm'


1
Per il tuo compleanno dovrebbe dire "Tanti auguri a te !" :-)
— RobIII,

@RobIII: Oops, hai ragione, non ho letto abbastanza attentamente. Rimuoverà la seconda versione. Grazie!
— H.Muster,

Presumo strncmp(x, y, 5)confronta date come 28-12-2013i primi 15 caratteri (essendo 28-12ad esempio il 28 dicembre). Funziona anche quando le impostazioni locali dell'utente sono yyyy/mm/ddad esempio? Matlab è dd-mm-yyyysempre predefinito ? (Solo curioso). Modifica Nevermind: trovato! . Sembra di si. Non importava comunque per mm/dd/yyyyo dd-mm-yyyydato che entrambi gli operandi sinistro e destro userebbero comunque lo stesso formato ed entrambi i 5 caratteri più a sinistra corrisponderebbero comunque; fintanto che l'anno non è mai in testa.
— RobIII,

Perché hai bisogno della variabile t? Non dir('f.m').datefunziona?
— ugoren,

@ugoren: tè necessario per dirrestituire gli attributi del file (altrimenti sarebbe sufficiente restituire tutti i file nella directory corrispondente 'f.m'). Inoltre, tè necessario per accedere al datecampo.
— H.Muster,

2

GNU COBOL con -free, 204

PROGRAM-ID.B.DATA DIVISION.WORKING-STORAGE SECTION.
1 A PIC XXXX/XX.
1 B PIC X(5).
1 C PIC X(21).
PROCEDURE DIVISION.ACCEPT A FROM DATE
ACCEPT C
MOVE WHEN-COMPILED TO B
IF A(3:5) = B OR "12/09" DISPLAY C.

Ho infranto le regole sulla celebrità, quindi nessun bonus lì ...

Il testo prodotto è un input dell'utente (richiesto quando eseguito). Se ciò non va bene, allora la definizione della linea Cdeve essere cancellata, così come deve ACCEPT C, e DISPLAY Cdeve diventare DISPLAY "HAPPY BIRTHDAY TO ME!" , per altri sette caratteri.

WHEN-COMPILEDè un registro speciale contenente la data / ora di compilazione disponibile per il programma (sempre utile, puoi sapere di avere la versione corretta). Viene troncato MOVEperché non è necessario il resto. DATEè la data corrente - questa è yymmdd.

La /nella definizione di A è una modifica del simbolo di inserimento, dato che la fase di compilazione data contiene barre. Un personaggio in più, ma facilita il confronto.

Celebrità = Grace Hopper


2

Lotto - 37 byte

Rubare il metodo usato da una delle risposte di Bash.

@echo.>>%0&echo Happy birthday to me!

Altro metodo - 145 byte

@for /f "tokens=2,3 delims=/ " %%a in ("%date%")do @for /f "tokens=1,2 delims=/" %%c in ("%~t0")do @if %%a%%b==%%c%%d @echo Happy Birthday to me!

1

Rubino, 69 caratteri / byte

puts'Happy birthday to me!'if(Time.new-File.atime($0))%31536000<86400

31536000è il numero di secondi in un anno ed 86400è il numero di secondi in un giorno.


4
Sfortunatamente, funziona correttamente solo per un massimo di sette anni circa, fino a quando non ti imbatti nel primo anno bisestile dopo l'atime.
— Amadan,

Dice anche "buon compleanno" la mattina dopo il tuo compleanno e non dice buon compleanno la mattina del tuo compleanno prima della nascita.
— AMADANON Inc.,

1

JavaScript

Node.js, 156 byte

b=new Date(require("fs").statSync(__filename).mtime);d=new Date();b.getDate()==d.getDate()&&b.getMonth()==d.getMonth()&&console.log("Happy birthday to me!")

Utilizza il tempo di modifica del file.


battendoti di 56 byte finora = P
— stroncium

Ottengo un errore di runtime quando eseguo il tuo, ma l'approccio della partita è sicuramente molto più intelligente. Correggi l'errore e hai il mio voto. ;)
— Chris W.

Puoi citare l'errore e il tuo sistema operativo? Immagino che non sia solo multipiattaforma.
— Stroncium,

1

Powershell - 105 byte

if('{0:M}'-f(gi $MyInvocation.MyCommand.Definition).creationtime-eq(date -f M)){'Happy birthday to me!'}

Ungolfed:

if('{0:M}' -f (gi $MyInvocation.MyCommand.Definition).creationtime -eq (date -f M)){
  'Happy birthday to me!'
}

Il bonus non ne vale la pena, posso ottenere solo 117,5.


1

Powershell - 127

if ((gci $MyInvocation.MyCommand.Path).lastwritetime.ToString("MMdd") -eq (get-date).ToString("MMdd")){"happy birthday to me!"}

Per il bonus del 15% - 151 byte, meno 15% = 128,4

$r=@{"0308"="you";(gci $MyInvocation.MyCommand.Path).lastwritetime.ToString("MMdd")="me"}[(get-date).tostring("MMdd")]
if($r){"Happy birthday to $r!"}

1
Non sono un esperto di PowerShell, ma funzionerà solo nell'anno in corso? Cosa succede quando il "programma" compie 1 °, 2 °, 3 ° ecc. Compleanno?
— RobIII,

Puoi rimuovere il writecomando - Con solo "happy birthday to me!"lo stamperà.
— salato,

Hai ragione. Dovrei saperlo.
— Chris J,

@Robill - oops. Questo è ciò che viene dallo scrivere qualcosa quando sono distratto da qualcos'altro e usare Codegolf come procrastinazione. Risolto (non che abbia la possibilità di vincere, mente).
— Chris J,

1

Rubino - 80 103 87 byte

m=File.mtime $0
t=Time.now
puts"Happy birthday to me!"if t.month==m.month&&t.day==m.day

Rubino - 123 115 135 121 - 15% = 104.55 97.75 114.75 102.85 punti

t=Time.now
{me:File.mtime($0),you:Time.at(36e5)}.map{|n,d|puts"Happy birthday to #{n}!"if t.month==d.month&&t.day==d.day}

Potrebbe essere un po 'più lungo o più corto a seconda di dove cade il tuo compleanno nell'anno e il modo più breve per rappresentarlo. Per il mio, questo è 36e5(secondi dall'epoca; dipende dal fuso orario).


Mel Gibson conta? Ecco un 138 byte - bonus del 35% = programma a 89,7 punti che celebra se stesso, io e Mel!

t=Time.now
{me:File.mtime($0),you:Time.at(36e5),Mel:Time.at(2e5)}.map{|n,d|puts"Happy birthday to #{n}!"if t.month==d.month&&t.day==d.day}

1
Il tuo codice fallisce negli anni bisestili, per le date successive a febbraio.
— ugoren,

@ugoren hai ragione. Risolto il problema, ma ho perso molti punti :(
— Tim S.

Ma ora ho recuperato la maggior parte di quelli! =)
— Tim S.

0

PureBasic

Senza bonus - 142

If Bool(FormatDate("%dd%mm",Date())=FormatDate("%dd%mm",GetFileDate(ProgramFilename(),0)))
MessageRequester("","Happy birthday To me!")
EndIf

Con Bonus - 218-15% = 185.3

Dim s$(2)
s$(1)="me"
s$(2)="you"
m$="%dd%mm"
d$=FormatDate(m$,Date())
i=Bool(d$=FormatDate(m$,GetFileDate(ProgramFilename(),0)))|(Bool(d$="2301")<<1)
If i=0:End:EndIf
MessageRequester("","Happy birthday To "+s$(i)+"!")

0

TI-BASIC, 68 byte

If Ans=0:getDate→G:0:G=G:If getDate=G:Disp "HAPPY BIRTHDAY TO ME!"

Ricordate, questi gettoni sono un byte: If , Ans, →, Disp. getDateè di due byte. Tutti gli altri simboli di un carattere sono un byte.


1
Sei sicuro che sia UTF-8?
— Fozzedout,

3
OP afferma esplicitamente che è necessario utilizzare UTF-8. Sono 66 caratteri e 68 byte.
— nyuszika7h,

2
Se si desidera richiedere 46 byte, scriverlo in 46 byte. Come è ora, sono 68 byte.
— Ugoren,

Secondo le dimensioni dei token in un ambiente TI-Basic standard è di 55 byte, ma come testo normale sì i suoi 68. Inoltre tecnicamente non deve esserci un "alla fine in modo da poter salvare un byte.
— Lemon Drop

0

J 79

 echo((6!:0'')(('',:'Happy birthday to me!'){~])@:-:&(1 2&{)&:>])1{,1!:0{:4!:3''

Versione bonus 120 - 15% = 102

Ricevo credito extra anche per la stampa sia in occasione del compleanno di entrambi?

echo((2 6$(6!:0 '') , 0 2 7)(' ','Happy birthday to ',"2 1]3 5$'you! me!  both!'){~#.@:(-:&(1 2&{)"1)&:>])1{,1!:0{:4!:3''

Spiegazione (da destra a sinistra):

last =: {:4!:3''     NB. Take the last script run (i.e. the file itself)
time =: 1{,1!:0 last NB. the modification time is the second element in that file's listing

Il verbo centrale del treno

unbox_both =: &:>      NB. unboxes left and right argument
match  =: -:&(1 2&{)"1 NB. for each date given, left and right, compare them
to_int =: #.           NB. convert boolean to int
from   =: {~           NB. from the left array, take element right.

NB. H contains messages an empty row, appended to all combinations of messages. 
H =: (' ','Happy birthday to ',"2 1]3 5$'you! me!  both!')

V =: (H from to_int)@:match unbox_both NB. after unboxing and comparing, 
                                       NB. select the according message

Il dente sinistro per il treno centrale:

dates=: (2 6$(6!:0 '') , 0 2 7) NB. the current date, and the relevant fields of my birthday.

NB. Combining the bricks:
echo (dates V ]) time           NB. output the monads result on time.

0

Java - 196

Ciò differisce dall'altro invio Java usando Strings, eliminando 41 caratteri nel processo. Utilizza String.format ("% tj") per formattare un java.util.Date o una stringa come un giorno dell'anno, quindi confronta queste due stringhe.

class Z{public static void main(String[]y){if("".format("%tj",new java.util.Date()).equals("".format("%tj",new java.io.File("Z.class").lastModified())))System.out.print("Happy birthday to me!");}}

formattato:

class Z
{
    public static void main(String[] y)
    {
        if ("".format("%tj", new java.util.Date()).equals("".format("%tj", new java.io.File("Z.class").lastModified())))
            System.out.print("Happy birthday to me!");
    }
}

1
Il giorno dell'anno non funziona bene con gli anni bisestili.
— ugoren,

@ugoren sono d'accordo. Tuttavia, poiché il concorso è attualmente in corso e siamo al 20 febbraio. i dati di compilazione dovrebbero andare bene per alcuni giorni e non causare problemi negli anni successivi. Durante la compilazione dopo il 28 febbraio ci sarà davvero un (futuro) problema.
— RobIII,

Se stavo compilando dopo il 28 febbraio, avrei potuto cambiare il formato String in "% tm% td" al costo di sei punti
— timxyz,

0

C # 191 nessun bonus

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

formattato:

using s = System;
class P
{
    static void Main()
    {
        if (s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd") == s.DateTime.Now.ToString("Mdd"))
            s.Console.Write("Happy birthday to me!");
    }
}

Si utilizza x solo due volte; var x="MMdd";+ ToString ( x) + ToString ( x) = 15 mentre ToString ( "MMdd"); + ToString ( "MMdd"); costa solo 12.
— RobIII,

Inoltre, non è necessaria una nuova riga, quindi è WriteLine()possibile accorciarla Write(). Con sopra e questo cambiamento in atto, hai la stessa identica soluzione di me ;-)
— RobIII,

1
Dovresti aggiornare anche il punteggio, che ora è 193. E puoi farlo scendere a 191 rasando due M * * suggerimento *: P
— RobIII

0

JavaScript (node.js) - 100 byte

(require('fs').fstatSync(4).mtime+1).match(Date().substr(4,6))&&console.log('Happy birthday to me!')

0

vb.net ~ 161c

Questo stamperà il messaggio di celebrazione per tutti coloro di cui è il compleanno.

Module M
Sub Main
For Each b In{({"1705","Alan"}),({"2012","You"}),({FileDateTime(Process.GetCurrentProcess.MainModule.FileName).ToString("ddMM"),"Me"})}
If b(0)=Now.ToString("ddMM") Then Console.WriteLine("Happy Birthday To {0}!",b(1))
Next
End Sub
End Module

Alan => Alan Kaye

Punteggio: 253c (-33c vb.net min) = 220-15% (il mio bonus di compleanno) = 187c - 14% (compleanno della celebrità) = 160.82 ~ 161c o 220c - 29% = 156.2 ~ 157c


Puoi ottenere un bonus per il tuo compleanno O una celebrità. Non entrambi.
— ugoren,

Il punteggio di @ugoren non afferma che è un esclusivo o, quindi sto usando il significato logico di o.
— Adam Speight,

0

Powershell, 82 byte

vedi anche le risposte di Chris J e SpellingD

"Happy birthday to me!"|?{(gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r)-eq(date|% D*r)}

dove

gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r

è la combinazione di scorciatoie e alias per l'espressione:

Get-Valiable MyInvocation -value|% MyCommand|% Path|Get-ChildItem|% LastWritetime|% DayOfYear

quell'equivalente una forma canonica:

(Get-ChildItem $MyInvocation.MyCommand.Path).LastWritetime.DayOfYear

Powershell, 119 byte - 14% = 102,34 punti

filter e{$_-eq(date|% D*r)}$('me'|?{gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r|e}
'Prof'|?{3|e})|%{"Happy birthday to $_!"}

Al 3 gennaio , viene visualizzato lo script Happy birthday to Prof!. Se questo script viene salvato il 3 gennaio, verranno visualizzati due messaggi di saluto.


-1

C # - 63 byte

class P
{
    static void Main()
    {
          Console.Write("Happy birthday to me!"));
    }
}

Scelgo il tempo di compilazione . Poiché il codice C # viene compilato in MSIL che in fase di runtime viene compilato nel codice eseguibile dal compilatore JIT , questo programma soddisfa le condizioni.

MODIFICA: risposta probabilmente non valida come indicato nei commenti.


1
Vecchio trucco, non più valido. La Regola 2 dice "non deve essere influenzato in alcun modo dall'invocazione o esecuzione del programma".
— ugoren,

aggiornato di conseguenza. Grazie @ugoren
— rahulroy9202,

@ugoren Anche il codice PERL di Phil H usa questo stesso trucco. Controlla la risposta più votata.
— rahulroy9202,

2
È anche una risposta non valida. Ma - è stato il primo a usare questo trucco, e al momento lo ha fatto le regole lo hanno permesso.
— Ugoren,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.