Défi
Étant donné que Noël est:
- décembre
- Mois 12
- Jour 25
Chaque année, déterminez la date d'aujourd'hui et indiquez si Noël est ou non. Si c'est Noël, vous devez imprimer "It's Christmas"
. Si ce n'est pas Noël, vous devez attendre Noël pour pouvoir l'imprimer "It's Christmas"
.
Exemple
De cette question de débordement de pile
import time
while time.strftime("%b, %d", time.localtime()) != "Dec, 25":
time.sleep(60)
print "It's Christmas"
Python en 115 caractères
Règles
Voici les règles:
- Supposons que l'horloge de l'ordinateur a toujours raison.
- Votre code doit pouvoir être lancé à tout moment.
- Votre code doit être imprimé
"It's Christmas"
à Noël. - La mise en boucle n'est certainement pas nécessaire, mais une fois démarré, votre code ne doit pas s'arrêter avant l'impression.
- Le code le plus court gagne.
Réponses:
Perl + Unix, 40 caractères
C'est la même chose que la solution Perl de JB , sauf que je sauve quelques caractères en utilisant la
date
commande external au lieu de celle de Perllocaltime
.la source
Bash, 39 ans
Pour ceux qui ne peuvent pas attendre:
Cela suit toutes les règles, en particulier la première.
la source
Unix, 39 octets
Avec l'aide de Dennis, merci pour cela.
la source
echo{,} "It\'s Christmas"|at -t12252359
, c'est plus court que la réponse acceptée. (La barre oblique inverse est obligatoire d'ailleurs.)PowerShell, 45
46caractèresCe n'est certainement pas très efficace en énergie, donc une batterie d'ordinateur portable pourrait mourir avant Noël (raison de souhaiter une nouvelle, peut-être). Mais ne pas dormir est définitivement plus court .
Ceci est également agnostique. Et merci à Jaykul pour cette astuce qui a permis de réduire davantage cette réduction.
Abuser un peu des règles, 45 caractères
Cela imprimera des lignes vides jusqu'à Noël, sur lequel sera imprimé «C'est Noël».
Il ...
la source
-match
, et se passer du caractère générique, sans gain ni perte de caractères.Python (36 caractères)
Dans un esprit d'abus des règles:
Imprime définitivement "C'est Noël" à Noël
Si ce n'est pas Noël, passez le temps en imprimant "C'est Noël"
la source
while 1:print"It's Christmas"
.PostScript, 90
Ne lancez pas sur une imprimante, elle n’imprimera pas de page et ne imprimera votre imprimante que jusqu'au jour de Noël. Encore une fois, récupérer votre imprimante serait un beau cadeau.
la source
Mathematica, 47
la source
Perl, 44
45Le temps GMT ne serait-il pas suffisant? (3 caractères off ;-)
la source
1until localtime=~/c 25/;
vous sauverait un caractère. :)-E
à ce moment-là. Merci!localtime
ci - dessous. N'hésitez pas à la voler si vous voulez, mais je pensais que la dépendance supplémentaire justifiait une réponse séparée.)Perl, 45
Perl, 44
en utilisant l'opérateur ternaire (Merci à Ilmari Karonen).
la source
? :
au lieu de,&& ;
cela vous sauverait aussi un personnage. (Et j'utiliseraissay
plutôt quedie
pour une sortie plus jolie.)say
au lieu de mourir, le script ne finit jamais.Javascript, 51 caractères
C'est un tueur de CPU:
la source
Je voulais faire cela sans analyser les chaînes. Par la suite, mon code contient beaucoup de chiffres magiques.
J'ai fait une approximation pour rendre compte des années bissextiles. Personne n'a dit qu'il devait l'imprimer dès le 25 décembre, à 00:00:00!
Perl,
806957 caractèresÉdité pour une boucle plus concise!
la source
R (47)
la source
Python, 66 à
68la source
1
me semble plutôt méfiant à la fin de la deuxième ligne. : P1
fournit un corps pour la boucle while. Il s’agit essentiellement d’attendre jusqu’au 25 décembre. L’effet est similairewhile 1:if'c 25'in time.asctime():break
.time.ctime()
ferait.TI-BASIC,
4238S'attend à ce que le format de date soit AAAA / MM / JJ.
getDate crée une liste de trois éléments
{year,month,day}
; seulement à Noël, le mois ^ 2 + jour ^ 2 est égal à 769.23 octets sont utilisés pour la chaîne car les lettres minuscules sont deux octets chacune, sauf pour i qui est affiché en tant que jeton d'unité imaginaire.
la source
Fichier de commandes, 68 caractères
Non utilisable de manière interactive, car cela tue la session. Une résolution qui nécessiterait 5 caractères supplémentaires.
Également sensible aux paramètres régionaux. Cela fonctionne sur mon environnement local qui utilise le format de date ISO 8601.
Mais bon, c’est un fichier batch (pour la plupart même pas considéré comme un langage de programmation). Et plus court que Javascript (et à égalité avec Python).
la source
Groovy, 55 ans
Pense que cela fonctionne, mais attend toujours la sortie.
la source
.*
sont totalement inutiles. (Ps. Vous pouvez le tester en attendant le 5 décembre au lieu du 25)(pdf) eTeX - 180 caractères seulement les 1er et 25 décembre.
TeX ne dispose que d’un moyen d’accéder à la date de démarrage du programme et au temps écoulé depuis le début, limité à 32 768 secondes. Je dois donc calculer le nombre de secondes à attendre et faire une boucle pendant temps écoulé pour atteindre
1s
et réinitialiser le temps. (Justement, je fais des blocs de 900 secondes.)Travailler pour n’importe quel mois nécessite plus de travail: 355 caractères.
la source
MySQL, 180 caractères
Parce que vous utilisez votre moteur de base de données pour quoi faire?
Pas très compétitif en longueur, mais bon, c'est faisable!
la source
DELIMITER /
,RETURNS TEXT
etCURDATE()LIKE'%12-25'
; et essayez de supprimer certains espaces.Ruby, 53 ans
la source
PHP, 40 octets
Boucle jusqu'au 25 décembre; puis quittez en mode brut et imprimez.
Exécuter avec les paramètres par défaut (ne pas afficher les avis).
la source
8086 code machine, 33 octets
la source
Javascript,
93897877 caractèresfunction x(){Date().match("c 25")?alert("It's Christmas"):setTimeout(x,1)}x()
la source
setInterval('/c 25/.test(Date())&&alert("It\'s Christmas")',9)
à 61 caractères ... le seul inconvénient est que ce seraalert()
toute la journée à Noël.setInterval
1?setInveral
à1000*60*60*24
et à la fois ne fera pas le processus souffrent et informera qu'une seule fois sur Noël.D, 130
la source
t.month^12|t.day^25
(si mes priorités sont bien définies)Q, 63 caractères
travaillera pour le jour de Noël chaque année
la source
SQL * Plus + PL / SQL - 100
SERVEROUTPUT ON
DBMS_OUTPUT.put
au lieu deDBMS_OUTPUT.put_line
mais cela n'imprime rien.la source
C # (126)
Plus sympa pour votre batterie:
C # (163)
modifier
La deuxième version ("plus agréable pour votre batterie") a un problème décroissant. 26 au déc. 31e je viens de penser à: P
Les deux versions peuvent probablement être raccourcies un peu plus.
la source
Japt , 27 octets (non concurrents)
Pour tester par rapport à la date du jour: remplacez
c 25
par la dernière lettre du mois (raccourci) + espace + jour du mois.Feb 02
==b 02
Essayez-le en ligne! Non compétitif car Japt est bien plus récent que ce défi.
la source
VBA, 58 octets
VBE anonyme active la fonction de fenêtre qui ne prend aucune entrée et s’exécute jusqu’au jour de Noël; à ce moment, il émet
It's Christmas
vers la fenêtre d’affichage VBE.la source
bash-n-date: 69 caractères:
Mais cela échouera du 26 au 31 décembre.
la source
Q (60)
la source