Afficher une horloge numérique
(Je vois qu'il y a beaucoup de défis d'horloge, j'ai essayé de tous les lire, je suis sûr que c'est unique)
Ecrire un code qui met à jour en permanence une horloge numérique affichée dans le format h:m:s
où h
, m
et s
peut occuper 1 ou 2 caractères chacun. Les restrictions en termes simples comme le dit @BlueEyedBeast, je veux essentiellement qu'il remplace l'heure indiquée.
- Les retours à la ligne ne sont pas autorisés
- Les espaces de fin sont autorisés
- Les autres caractères de fin ne sont pas autorisés
- Aucune seconde ne doit être manquée (57 -> 59 n'est pas autorisé)
- Les nombres commençant par "0" sont autorisés, tant qu'ils n'occupent pas plus de 2 caractères
- Le code ne doit accepter aucune entrée
- Si votre langue ne peut pas obtenir l'heure actuelle sans entrée, vous pouvez utiliser pour l'entrée jusqu'à 8 octets de manière standard autorisée
- La sortie doit être vers stdout
- Il s'agit de codegolf, donc la réponse la plus courte l'emporte!
Exemple
Je travaille sur un langage nommé *> <> (étoile de mer) parce que des programmes comme celui-ci ne sont pas possibles dans> <> (attendez simplement le fichier i / o). Voici un programme d'horloge numérique qui fonctionne (non golfé). Ce programme est écrit en *> <> :
s":"m":"hnonon" "ooo88888888888ooooooooooo1S
Remarque: Tout est identique à> <> dans ce cas, sauf, s = seconde, m = minute, h = heure, S = sommeil (100 ms * x)
Cela produit:
14:44:31
Mise à jour toutes les 100 ms jusqu'à la fin.
Exemples non autorisés
Les éléments suivants ne sont pas autorisés:
1:
14:44:3114:44:32
2:
14:44:31 14:44:32
3:
14:44:31
14:44:32
Le temps doit rester sur la première ligne de sortie sans caractères de fin visibles. Cependant, effacer le terminal serait autorisé car il n'aurait toujours pas de caractères de fin.
Réponses:
Pyke, 6 octets
Essayez-le ici!
Je pense que c'est valable. Remplacez le caractère espace par un retour chariot pour une sortie valide (ne fonctionne pas en ligne)
la source
HTML + JS (ES6), 8 + 60 = 68 octets
Testé dans Chrome.
-1 octet (@ETHProductions): utilisez le format d'heure français au lieu de
.toTimeString().slice(0,8)
HTML + JS (ES6), 8 + 62 = 70 octets
Cela fonctionnera dans FireFox.
-3 octets (@ETHProductions): utilisez le format d'heure français au lieu de
.toTimeString().slice(0,8)
la source
new Date().toLocaleTimeString`fr`
(1 octet dans celui de Chrome avec...TimeString('fr')
)Python 2, 50 octets
(Python 2.1+ pour
ctime
sans argument)time.ctime()
renvoie une chaîne formatée, à partir de laquelle le hh: mm: ss peut être découpé en utilisant[11:19]
(il reste au même emplacement quelles que soient la date et l'heure).print
le retour chariot'\r'
avant le texte et faire du texte le premier élément d'un tuple,
supprime efficacement la fin implicite'\n'
et écrase la sortie précédemment écrite.while 1
boucles pour toujours.la source
,
à la fin pour supprimer la nouvelle ligne sinon dans Python 2.7.12 j'obtiens des nouvelles lignes.Mathematica,
48413728 octetsLa sortie sera un
TimeObject
, rafraîchissant en continu.Ressemble à ça:
Versions alternatives
48 octets:
53 octets:
la source
Dynamic@{DateString@TimeObject[], Clock[]}[[1]]
Pause
.Dynamic@{Now,Clock[]}[[1]]
est de 26 octets et montre un objet datetime.Dynamic@{DateString@"Time",Clock[]}[[1]]
est de 40 octets et ne produit que hh: mm: ssJe constate que l'exigence d'une entrée d'interface utilisateur sans signal pour arrêter le programme a été supprimée. Alors maintenant, nous pouvons faire:
Bash + coreutils, 28
yes
émet en continu la chaîne "maintenant", une fois par ligne, dans un tuyau.date -f-
reads interprète chaque "maintenant" comme l'heure actuelle, puis sort au format requis. La chaîne de format comprend la séquence d'échappement ANSI pour effacer l'écran.date
fait sortir un saut de ligne après la date - je ne sais pas si ce disqualifie, puisque l'écran est effacé à chaque fois que de toute façon.S'il est disqualifié, nous pouvons utiliser à la
tr
place:Bash + coreutils, 31
Réponses précédentes:
Bash + X, 32
Malheureusement, cela ne peut être mis à jour qu'à chaque seconde. Si cela disqualifie, alors nous pouvons le faire à la place:
Bash + coreutils, 43
la source
date +$'\e[2J'%T;$0
date +$'\e[2J'%T;exec $0
pour 24 octets ...QBIC , 6 octets
Efface constamment l'écran et imprime l'heure système au format
22:03:41
.la source
Clojure,
150136141 octetsV3: 141 octets :(
+5 octets pour corriger un bug. Étant donné que les heures ne sont pas remplies de zéro, l'horloge peut "rétrécir" et s'étendre lorsque l'heure change. Il "maculait" quand il rétrécissait parce que le dernier chiffre n'était plus effacé. Corrigé en ajoutant des espaces à la fin pour s'assurer que tout était écrasé.
V2: 136 octets
-14 octets en passant à l'aide de
SimpleDateFormat
pour formater la date. Toujours énorme.V1: 150 octets
J'ai réalisé que j'utilisais probablement le pire moyen possible pour obtenir la date. Certainement matière à amélioration ici.
Non golfé:
la source
Montre Bash +, 19 octets
watch ne fait pas partie de coreutils , mais est disponible immédiatement sur pratiquement toutes les distributions Linux.
Golfé
Essayez-le en ligne!
la source
WinDbg, 73 octets
Il met continuellement à jour une ligne avec l'heure actuelle jusqu'à ce que l'utilisateur appuie sur Ctrl + Break.
Comment ça fonctionne:
Exemple de sortie (enfin, vous avez l'idée):
la source
PHP, 28 octets
La
date
fonction imprime tout ce qu’elle ne reconnaît pas.\r
est le retour chariot, positionne le curseur sur la première colonne.Courez avec
-r
.la source
MATL , 11 octets
Boucle infinie qui efface l'écran et imprime l'heure au format spécifié.
Vous pouvez l'essayer sur MATL Online! . Ce compilateur est expérimental; si cela ne fonctionne pas, actualisez la page et appuyez à nouveau sur "Exécuter".
la source
C #, 82 octets
Méthode anonyme qui écrase constamment 8 caractères avec une nouvelle sortie. Peut être raccourci d'un octet en cas de modification pour accepter un paramètre fictif (
z=>...
).Programme complet:
la source
System
? Certaines personnes le font, et d'autres non: /C #, 65 octets
Fonctionne en écrasant la même ligne dans une boucle sans fin
la source
SmileBASIC 3.3.2, 38 octets
L'UTF-16 craint :(
Quoi qu'il en soit, cela imprime à plusieurs reprises l'heure locale en HH: MM: SS avec un espace après, pas de nouvelle ligne par la suite. Cependant, il ne se met pas à jour à chaque seconde, il s'imprime à plusieurs reprises pour toujours.
la source
@L?TIME$
et ajouter une ligne après (pour un total de 3 lignes) qui litLOCATE 0, 0
fait l'affaire (SmileBASIC prend-il en charge le retour chariot?).len(""" YOUR CODE HERE """)
, puis faites simplement * 2 pour UTF-16.C,
1341168980767573 octetsla source
time.h
. Cela supprime le type time_t, vous devez donc faire n un int à la place. Cela peut être fait en le déclarant en dehors de main (liken;main...
), ce qui supprime le besoin deint
. Vous pouvez également vous débarrasser dechar
la même astuce:b[9];main...
. Ils sont tous les deux de type int maintenant, mais c'est assez flexible.strftime...
et leb[9]
et je viens d'en faire une impression:printf("\r%d:%d:%d",(n/3600)%60-29,(n/60)%60,n%60);
je ne sais pas si les parens sont nécessaires ou non. Vous pouvez également supprimer un ensemble de{}
en mettant des virgules entre vos déclarations afin qu'il soitfor(;;)a,b,c;
(n/60)%60
, sérieusement?n
comme paramètre demain
, disonsmain(n)
au lieu den;main()
Powershell, 39 octets
Parce que je n'aime pas utiliser cls dans Powershell. De la publication du briantist @ /codegolf//a/102450/63383
la source
Pascal, 61 octets
Pascal gratuit a de belles routines de temps dans l'unité SysUtils. Non golfé:
la source
C 65 (64 précédents) octets
Garanti pour fonctionner sur une machine Linux. :)
@Marco Merci!
la source
Vim, 26 octets
Cela crée une macro récursive (par exemple une boucle éternelle) qui supprime tout le texte sur la ligne actuelle et le remplace par l'heure actuelle.
la source
Pyth - 28 octets
Un peu long, car pyth n'a pas de strftime.
la source
Groovy, 45 caractères
la source
Gelée , 8 octets
Essayez-le en ligne!
Le retour chariot ne fonctionne pas en ligne, et je ne peux pas faire fonctionner l'interpréteur, donc il n'a pas été testé, mais il fonctionne comme prévu lorsque j'utilise des caractères imprimables à la place du CR.
la source
ForceLang, 123 octets
datetime.toTimeString
est soutenu dans l'implémentation de référence par JavaDateFormat.getTimeInstance()
, qui dépend des paramètres régionaux, de sorte que vous pouvez définir les paramètres régionaux par défaut de votre système sur ceux qui utilisent 24 heures.la source
PowerShell,
30282420 octetsChangé la région de mon ordinateur en Allemagne sur la base du commentaire de raznagul pour économiser 4 octets. :)
Version précédente qui fonctionne dans tous les environnements locaux.
la source
tcl, 69 octets
Essayez-le ici!
la source
Lot, 36 octets
Où
␈
représente le caractère ASCII BS (code 8).la source
Raquette, 71 octets
Où le
↵
est en fait un CR (hex0d
). Vidage hexadécimal du programme pour plus de précision (octet de notification à la position hex4d
):Utilise SRFI / 19 inclus avec la distribution Racket.
(current-date)
obtient la date et l'heure locales actuelles. Ledate->string
format~3
est le format ISO-8601 heure-minute-seconde.(let l () ... (l))
dans une boucle infinie idiomatique.(require srfi/19)
charge lesrfi/19
module.la source
C, 156 octets
la source
TI-Basic, 40 octets
(Dans TI-BASIC, de nombreux caractères sont des jetons de 2 octets et les deux-points au début d'une ligne sont de 0 octet supplémentaire)
la source
R, 41 octets
A un espace de fin (car
cat
le séparateur par défaut est un espace).En raison du taux de rafraîchissement de l'interface graphique R, son exécution dans l'interface graphique sautera parfois quelques secondes, mais si vous l'enregistrez dans un fichier et l'exécutez sur la ligne de commande, il s'affichera correctement toutes les secondes.
S'exécutera indéfiniment jusqu'à interruption de l'utilisateur.
la source