Défi
Vous devez sortir l'heure actuelle de manière continue (jusqu'à ce qu'elle soit annulée par une interruption), une fois par seconde, par l'un des moyens suivants:
- Il doit être au format 24 heures ou AM / PM.
- Si c'est le premier cas, il doit être espacé de deux points (par exemple, 15:47:36).
- Si c'est ce dernier cas, il doit être espacé de deux-points et suivi par AM / PM (c.-à-d. 15h47:36)
- Il peut être tiré d'internet.
- Ce peut être l'heure du système.
- Il doit générer toute forme de sortie naturellement accessible prenant en charge le texte que vous choisissez.
- La sortie peut contenir des informations supplémentaires en dehors du temps, mais vous devez garantir une et une seule sortie de temps par seconde.
- La sortie continue doit être séparée d'une seconde. Si vous choisissez d'attendre que la seconde change entre les sorties, c'est très bien. Si vous attendez une seconde entre chaque sortie, c'est parfaitement acceptable, malgré la perte de précision éventuelle.
S'agissant d'un catalogue, les langues créées après ce défi sont autorisées à entrer en compétition. Notez qu'il doit y avoir un interprète pour que la soumission puisse être testée. Il est permis (et même encouragé) d’écrire cet interprète vous-même pour une langue non encore implémentée. En dehors de cela, toutes les règles standard du code-golf doivent être respectées. Les soumissions dans la plupart des langues seront notées en octets selon un codage préexistant approprié (généralement UTF-8).
Catalogue
L'extrait de pile au bas de cet article génère le catalogue à partir des réponses a) sous forme de liste des solutions les plus courtes par langue et b) sous forme de classement global.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
## Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores en les effaçant. Par exemple:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs numéros dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou si vous souhaitez répertorier séparément les pénalités d'indicateur d'interprétation), assurez-vous que le score réel est le dernier numéro de l'en-tête:
## Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de code:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
sleep 1
règles basées sur la règle de rupture de réponse 5: vous devez garantir une, et une seule sortie de temps par seconde. !!Réponses:
Minecraft 1.8.7, 7 + 8 = 15 blytes (octets + blocs)
Un seul bloc de commande impliqué:
La sortie se dirige vers la console client comme suit:
Dans le cadre de la sortie normale.
C'est le système:
xp
donne une quantité spécifiée d'expérience à un joueur spécifié avec la syntaxexp <amount> <player>
. Je suis à peu près sûr que c'est la plus petite commande à sortie singulière que je puisse obtenir maintenant.la source
JavaScript, 32 octets
Utilise le fait que setInterval évalue le code. Ce n'est pas recommandé, mais quand était-ce une préoccupation dans le code golf?
Date()
renvoie l'heure et la date actuelles dans un format comme celui-ci (peut varier d'un système à l'autre).la source
setInterval(alert,1e3,Date())
travailler à la place?Date()
ne sera évalué qu'une fois lorsque vous créez l'intervallesh (+ regarder), 11 octets
Scénario:
(pas de nouvelle ligne)
Sortie:
La quantité d'espaces dépend de la largeur du terminal.
Testé sur Debian8 et NetBSD7.
la source
watch
est un coreutil. Le vrai langage est bash / sh.Bash (distribution)
, nonwatch
? @Doorknob-p
switch pour ne pas enfreindre la règle, vous devez garantir une, et une seule sortie de temps par seconde. !!Snap ,
876 blocs(Oui, je l'ai changé dans MS Paint parce que j'étais trop paresseux pour faire une autre capture d'écran. Alors quoi? Au moins, c'est lisible.)
Cliquez sur le script pour exécuter
une horloge de 24 heures.
la source
9:21:08
?Python 2, 47 octets
Aucun lien en ligne, car idéone expire (huehuehue) avant d’imprimer quoi que ce soit.
Merci à @xsot pour le
while[sleep(1)]
tour et lectime
tour.Imprime la date et l'heure actuelles comme suit:
Fri Nov 27 21:23:02 2015
la source
sleep 1
réponse basée sur la règle 5: vous devez garantir une, et une seule sortie de temps par seconde.sleep 1
le thread en cours pendant exactement une seconde. Il se conforme aux règles.sleep(1)
tant sa solution AppleScript et sa solution bash Vitsy + , il est clairement acceptable.Perl, ligne de commande, 24 octets
Cela doit être exécuté à partir de la ligne de commande, comme
perl -E'sleep(say)while$_=gmtime'
(sous Windows, utilisez des guillemets doubles). La date sera sortie avec l'heure, ce qui semble être permis .Perl, 25 octets
Dans un contexte scalaire,
gmtime
retournera une chaîne similaire àSat Nov 28 10:23:05 2015
. Le résultat deprint
, toujours 1, est utilisé comme paramètre poursleep
.do$0
est utilisé pour exécuter le script à nouveau, une fois que la minuterie est terminée.la source
{sleep say~~gmtime;redo}
.sleep 1
réponse basée sur la règle 5: vous devez garantir une, et une seule sortie de temps par seconde .Javascript ES6, 43 39 octets
Fonctionne avec mes réglages d’heure actuels (qui n’ont pas été modifiés depuis un certain temps, merci), au moins.
4 octets enregistrés par Conor O'Brien.
la source
.toTimeString()
de Chrome et de FF.new Date()
parDate()
Arcyóu , 27 octets
J'ai dû combiner deux nouvelles fonctions pour ce défi,
zz
etst
.pn
: Exactement comme Lisp'sprogn
.zz
: Lien direct vers Pythontime.sleep
.st
: Lien direct vers Pythontime.strftime
.Normalement, des guillemets seraient nécessaires autour de la chaîne de format, mais comme il n'y a pas d'espaces, ils sont analysés comme un symbole. L'interprète évalue les symboles non définis comme tels, nous obtenons donc une chaîne.
la source
Bash,
5131242120 octetsMerci à @quartata pour ses commentaires très utiles. Merci @Dennis pour les éclaircissements et pour avoir coupé encore plus d'octets. Merci à @ VoteToClose pour avoir clarifié les règles (apparemment, je suis mauvais en lecture), ce qui a réduit davantage le nombre d'octets.
date
affiche la date complète avec une horloge de 24 heures.sleep 1
dort une seconde.exec $0
boucle le script infiniment.la source
true
avec les retourssleep 1
depuissleep
un1
.date +%T;sleep 1;exec $0
est un peu plus court. @quartata Nitpicking:sleep
a le code de sortie zéro, c'est pourquoiwhile
continue.date
, il ne s'agit donc que de 20 octets.Befunge 98, 53 octets
Remarques:
.
commande imprime un espace implicite à la fin.d
sur la première ligne par una
la source
"EMIT"4(
début du programme raconte l'interprète de charger l'TIME
empreinte digitale, qui permet auxH
,M
et desS
instructions. (Non, il n'émet pas le nombre 4).mIRC 7.49
2016 octetsla source
say
vous connecter à un serveur, puis de rejoindre un canal. sinon vous utiliseriezecho
au lieu desay
. mIRC a son propre langage de script mSL (langage de script mIRC)AutoHotkey, 50 octets
Remarques:
la source
x
.C (sous Linux x64),
179177175168159 octetsUngolfed:
Testé uniquement sur, et ne fonctionne probablement que sur linux x64 (x32 pourrait fonctionner, mais les autres plates-formes ne fonctionneront probablement pas).
La principale différence entre ce programme et l’autre programme C posté est l’utilisation d’appels de fonctions exclusifs à Linux, qui, bien que très mauvaises pratiques pour les logiciels réels, permettent d’économiser quelques octets ... si vous ignorez tous les avertissements du compilateur.
la source
#include
et<...>
. Aussi, pouvez-vous utiliser1e6
au lieu de1000000
?#include
s. Il ne semble pas que usleep () accepte 1e6, cependant - en fonction de la rapidité avec laquelle il commence à cracher des horodatages, il l'interprète comme étant%T
comme spécification de format dansstrftime
.Jolf ,
1487 octetsRayer 14 est un 1 barré? Naw, ça n'arrivera jamais;)
Essayez-le ici! Cliquez sur Exécuter, ne cliquez sur rien d’autre ^ _ ^ la page est très ... explosive. Oui. Système de sortie fixe avec mise à jour.
(J'ai ajouté quelques constantes et
~1
à~4
des puissances de10
.)Explication
la source
Dyalog APL ,
27 1816 octetsEssayez-le en ligne!
⎕TS
YMD hmst':',¨
prepend: à chaque⋄
nouvelle instruction,⎕DL 1
attendez une seconde et renvoyez le temps attendu réel; 1.0secondes secondes indiquent≢
le temps d'attente réel, donnant 1→
aller à la ligne (1 = cette ligne)la source
Perl 6 , 29 octets
La bonne façon de faire ceci:
La version golfée
Étant donné que la sortie ne doit pas nécessairement être limitée au temps, je peux la raccourcir un peu.
la source
R, 38 octets
Ceci affiche l'heure actuelle au format suivant:
la source
Powershell, 19 octets
la source
for(){date;sleep 1}
PHP, 37 octets
Affiche l'heure du serveur formaté et configure la page pour qu'elle s'actualise toutes les secondes.
Bien sûr, cela dépend de votre connexion Internet et de la rapidité avec laquelle votre serveur repsonding est :)
Démo
la source
Warning: Cannot modify header information - headers already sent
<?=header('refresh:1').date('G:i:s');
devrait fonctionner avec l’un ou l’autre réglage.VBA, 69 octets
Obtenir l'heure est facile,
now()
ne sortir que toutes les secondes 1, BEAUCOUP plus détaillé.C'est la "bonne" façon d'attendre 1 seconde en VBA. 78 octets
Ou si vous voulez couper certains coins et que vous avez seulement raison 86% du temps, c'est assez bien 63 octets; en
ajoutant un SigFig, vous obtenez une précision de 95% et un troisième vous conduira à 99,36%
Si vous souhaitez obtenir la méthode ci-dessus à 100%, vous avez besoin de 69 octets.
(1/86400)
Toutes ces méthodes trébucheraient sur une seconde de seconde Beacuse sans attendre 1 seconde, mais attendez jusqu'à 1 seconde. À minuit, lorsque les horloges se replient d'une heure, cette horloge s'arrête pendant 1 heure, puis reprend à l'endroit où elle s'est arrêtée.
VBA autorise la méthode de veille, mais votre calculateur d'octets est en ruine. 97 octets
la source
JavaScript,
473835 octetsExplication
Vérifie continuellement si l’heure a changé, puis
alert
s’il le fait.la source
+""
, car sansnew
,Date()
renvoie une chaîne.new
. Merci d'avoir attrapé ça!AppleScript,
5135 octetsPlutôt évident. Imprime la date actuelle, qui contient l'heure, retarde une seconde, puis continue.
la source
, 13 caractères / 25 octets
Try it here(Firefox only).
Ceci est étonnamment lisible.
la source
Dyalog APL, 36 octets
Pas très court cette fois.
Cela donne l'heure sur 24 heures, à savoir:
Explication:
{
...}1
: définit une fonction et l'appelle (l'argument est ignoré, mais nous avons besoin de la fonction pour l'appeler de manière récursive)⎕TS
: une fonction système qui renvoie la date et l'heure actuelles, au format année - mois - jour - heure - minute - seconde - milliseconde . (⎕TS
= t ime s tamp)3↑3↓
: supprimez les 3 premiers éléments (année - mois - jour), puis prenez les 3 premiers éléments restants (heure - minute - seconde).'⊂:⊃,ZI2'⎕FMT
: formate chaque nombre sous la forme d'un entier à deux chiffres (I2
) avec des zéros au début (Z
), précédé du signe deux-points (⊂:⊃
). (Cela donne une matrice.)∊
: Récupère tous les éléments de la matrice, dans l’ordre des lignes. (Cela donne un vecteur, dans ce cas une chaîne.)1↓
: déposer le premier caractère (qui est un extra:
)⎕←
: le sortir⎕DL 1
: puis attendez une seconde (⎕DL
= d e l ay)∇
: appeler la fonction récursivementla source
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1
pour 28 octets, suffit selon OP .QBasic, 18 octets
la source
Haskell,
989685 octetsVersion alternative utilisant la notation do:
Obtient l'heure actuelle
getCurrentTime
dans laData.Time
bibliothèque, la dirige ensuite dansprint
, attend 1 000 000 microsecondes (1 seconde) et s'appelle elle-même.Merci à nimi et mauris!
la source
m@main=...>>m
est toujours plus court quemain=...>>main
threadDelay
est de toute façon spécifique à GHC, vous pouvez l'importer deGHC.Conc
Lot - 34
40octetsJ'adore les variables intégrées:
Il doit certainement y avoir une certaine
sleep
commande dans Batch de si tôt.la source
ping ...
avectimeout 1
. De plus, l'horloge n'est pas très précise lors de l'utilisationping
. C'est mieux avectimeout
;):A
et remplacergoto A
par%0
Python 3, 99 octets
Toutes mes excuses si le format du code est bizarre, faites-le depuis un ipad. (ne demandez pas). Je sais que ce code est volumineux si l’on considère certaines des autres réponses, mais je n’en ai pas encore vu un en python et j’ai voulu l’ajouter.
la source
True
par1
, et si vous placez les lignesprint
etsleep
sur la même ligne quewhile
(séparées par un point-virgule), vous enregistrez les espaces.Java,
300166137125124 octetsPrès deplus de la moitié grâce à VoteToClose, Paülo Ebermann et janschweizer!Ungolfed:
la source
java.util.*
au lieu des deuxjava.util
importations,java.text.*
pour le même raisonnement. Utilisezfor(;;)
pour des boucles infinies. UtiliserString[]a
dans la déclaration principale. Utilisezinterface A{static void main(...
, car cela raccourcira encore plus. Vous pouvez utiliserException
plusInterruptedException
, et vous pouvez remplacerex
pare
. Vous pouvez également supprimer tout le texte à l'intérieur de la capture, car cela ne fait de toute façon rien.DateFormat
et deCalendar
variables. Vous remplacez le contenu de la boucle for parSystem.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}
.import java.util.*;import java.text.*;interface A{static void main(String[]a){for(;;){System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}}}}
throws Exception
est plus court qu'un essai / attrapePerl,
9981755140362927 octetsla source
gmtime
au lieu delocaltime
.printf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
gmtime."\n"
forcera un contexte scalaire.."\n"
dans le golf: utilisez.$/
pour économiser 2 octets. À tout le moins, utilisez une nouvelle ligne littérale au lieu de\n
sauvegarder 1 octet.