Sortie l'heure actuelle

49

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

Nest 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

Addison Crump
la source
"Jusqu'à annulation par une interruption" inclut-il la fermeture du programme ou a-t-il besoin d'un mécanisme pour arrêter le cycle qui y est codé?
user81655
1
Avertissement: Toutes les sleep 1rè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. !!
F. Hauri,
1
F. Hauri: Comment ça? La règle 6 dit "Si vous attendez une seconde entre chaque sortie, c'est très bien aussi."
YetiCGN
1
@Jasen Non, mais la signification de "c'est bien" implique que l'option d'attente est toujours valable, quelle que soit la perte de temps éventuelle. J'ai clarifié cela pour vous.
Addison Crump

Réponses:

56

Minecraft 1.8.7, 7 + 8 = 15 blytes (octets + blocs)

Un seul bloc de commande impliqué:

xp 1 @p

La sortie se dirige vers la console client comme suit:

fois

Dans le cadre de la sortie normale.

C'est le système:

le système

xpdonne une quantité spécifiée d'expérience à un joueur spécifié avec la syntaxe xp <amount> <player>. Je suis à peu près sûr que c'est la plus petite commande à sortie singulière que je puisse obtenir maintenant.

Addison Crump
la source
3
Ne dites pas "19 octets" car vous n'avez pas mesuré la taille de votre réponse en octets.
Feersum
6
@feersum Il y a une raison pour que je dise des octets, croyez-moi. C’est ce qui se rapproche le plus d’un consensus pour MC pour le moment.
Addison Crump
4
Vous pouvez utiliser les codes numériques obsolètes, n'est-ce pas?
Conor O'Brien
4
Utilisez ce système de notation si vous le souhaitez, 19 whatevers, mais ce n'est pas 19 octets, car il n'y a pas d'encodage défini précédemment qui vous permet de stocker cette solution dans un fichier de 19 octets.
Feersum
1
@ CᴏɴᴏʀO'Bʀɪᴇɴ, je crois qu'il faudrait que je l'enveloppe dans JSON. Sauf si j'ai utilisé 1.6, mais c'est pratiquement une autre langue.
Addison Crump
17

JavaScript, 32 octets

setInterval("alert(Date())",1e3)

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

 Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
intrépide
la source
Serait setInterval(alert,1e3,Date())travailler à la place?
ETHproductions
@ETHproductions Il montre toujours le même temps pour moi
ev3commander
@ETHproductions dans votre exemple Date()ne sera évalué qu'une fois lorsque vous créez l'intervalle
MMM
15

sh (+ regarder), 11 octets

Scénario:

watch -n1 .

(pas de nouvelle ligne)

Sortie:

Every 1,0s: . (SPACES) Sat Nov 28 19:07:51 2015

La quantité d'espaces dépend de la largeur du terminal.

Testé sur Debian8 et NetBSD7.

disparu
la source
Bon outil pour le poste, +1
Addison Crump
Attendez, cela compte-t-il comme langage de programmation? Pouvez-vous me donner un lien vers un interprète?
Addison Crump
@VoteToClose watchest un coreutil. Le vrai langage est bash / sh.
Poignée de porte
Alors ... ça ne devrait pas être Bash (distribution), non watch? @Doorknob
Addison Crump
1
Hmm Vous devez utiliser -pswitch pour ne pas enfreindre la règle, vous devez garantir une, et une seule sortie de temps par seconde. !!
F. Hauri,
15

Snap , 8 7 6 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.

ev3commander
la source
2
J'aime toujours les langages de programmation graphiques. : D +1
Addison Crump
oh hey ev3! Je vous connais sur les forums Snap / Scratch: P pourquoi avez-vous besoin de Snap au lieu de Scratch, exactement?
anOKsquirrel
2
@anOKsquirrel Parce que je n'ai pas besoin d'imbriquer tous ces blocs de jointure.
ev3commander
Cela ne devrait-il pas être lu 9:21:08?
Luc
@Luke Comme l'indique la réponse TI-BASIC, le temps sans zéro dans une sortie est correct. Il est lisible par l'homme et précise l'heure.
Addison Crump
11

Python 2, 47 octets

from time import*
while[sleep(1)]:print ctime()

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 le ctimetour.

Imprime la date et l'heure actuelles comme suit: Fri Nov 27 21:23:02 2015

Mego
la source
2
/ moi applaudit lentement au jeu de mots. Très drôle Mego. ; D
Addison Crump
sleep 1réponse basée sur la règle 5: vous devez garantir une, et une seule sortie de temps par seconde.
F. Hauri,
@ F.Hauri arrête sleep 1le thread en cours pendant exactement une seconde. Il se conforme aux règles.
Mego
1
@ F.Hauri Considérant que l'auteur de défi lui - même utilise l'équivalent de sleep(1)tant sa solution AppleScript et sa solution bash Vitsy + , il est clairement acceptable.
Mego
9

Perl, ligne de commande, 24 octets

sleep(say)while$_=gmtime

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

sleep print$/.gmtime;do$0

Dans un contexte scalaire, gmtimeretournera une chaîne similaire à Sat Nov 28 10:23:05 2015. Le résultat de print, toujours 1, est utilisé comme paramètre pour sleep. do$0est utilisé pour exécuter le script à nouveau, une fois que la minuterie est terminée.

primo
la source
2
Comme en témoignent la solution et le commentaire AppleScript de @ VoteToClose , vous n'avez pas besoin d'extraire l'heure.
Mego
1
Une autre solution de 24 octets: {sleep say~~gmtime;redo}.
Denis Ibaev
sleep 1réponse basée sur la règle 5: vous devez garantir une, et une seule sortie de temps par seconde .
F. Hauri
@ F.Hauri, la règle a été ajoutée après la publication de cet article.
Primo
9

Javascript ES6, 43 39 octets

setInterval(_=>console.log(Date()),1e3)

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.

SuperJedi224
la source
alerte est plus courte?
Maltysen
8
@Maltysen Je pense que dans de nombreux navigateurs, vous devez fermer une fenêtre d'alerte pour voir la suivante.
mardi
@Maltysen Je l'ai essayé, gâcher l'intervalle en quelque sorte
SuperJedi224
1
Vous n'avez pas besoin .toTimeString()de Chrome et de FF.
Bob
1
Je pense que vous pouvez remplacer new Date()parDate()
Conor O'Brien
8

Arcyóu , 27 octets

(@ t(pn(zz 1)(p(st %H:%M:%S

J'ai dû combiner deux nouvelles fonctions pour ce défi, zzet st.

pn: Exactement comme Lisp's progn.

zz: Lien direct vers Python time.sleep.

st: Lien direct vers Python time.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.

bkul
la source
1
Je voterais, mais je n'ai plus de voix. +1; c Et de belles mises à jour. : D
Addison Crump
7

Bash, 51 31 24 21 20 octets

Merci à @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.

dateaffiche la date complète avec une horloge de 24 heures. sleep 1dort une seconde. exec $0boucle le script infiniment.

date;sleep 1;exec $0
Liam
la source
Vous n'avez pas besoin du shebang.
un spaghetto
En outre, je pense que vous pouvez remplacer le trueavec les retours sleep 1depuis sleepun 1.
un spaghetto
date +%T;sleep 1;exec $0est un peu plus court. @quartata Nitpicking: sleepa le code de sortie zéro, c'est pourquoi whilecontinue.
Dennis
3
Oh, je suis un idiot
un spaghetto
2
Vous n'avez pas besoin d'espace après date, il ne s'agit donc que de 20 octets.
ThisSuitIsBlackNot
6

Befunge 98, 53 octets

 v
v>"EMIT"4(>H.8,':,M.8,':,S:.8,d,
>:S-    !!k^

Remarques:

  1. Ce programme ne numérote pas les chiffres qu'il imprime.
  2. Ce programme imprime un espace puis un caractère de retour arrière après chaque nombre, car la .commande imprime un espace implicite à la fin.
  3. La taille de la pile dans ce programme augmente chaque seconde et finira par manquer de mémoire.
  4. Ce programme écrasera l’heure précédente lorsqu’il en imprimera un nouveau. Pour l’imprimer à chaque fois sur une nouvelle ligne, remplacez le dsur la première ligne par una
poivré
la source
Pourquoi la chaîne "TIME" est-elle nécessaire? Y a-t-il un moyen de s'en emparer? (Je ne savais pas à ce sujet)
Addison Crump
Le "EMIT"4(début du programme raconte l'interprète de charger l' TIMEempreinte digitale, qui permet aux H, Met des Sinstructions. (Non, il n'émet pas le nombre 4).
pppery
C'est génial . Je n'ai même jamais pensé que de nombreux esolangs feraient cela, +1.
Addison Crump
@VoteToClose Befunge 98 a même une instruction pour exécuter un programme arbitraire sorti de la pile.
pppery
1
ruisseler d'apprendre cette langue Excusez - moi ...
Addison Crump
6

mIRC 7.49 20 16 octets

/timer 0 1 $time
onkarjit
la source
Où pouvons-nous tester cela?
Addison Crump
Vous devez télécharger mIRC, c'est un client shareware IRC. Vous pouvez également le télécharger à partir de: mirc.com également, car la réponse ci-dessus vous permet de sayvous connecter à un serveur, puis de rejoindre un canal. sinon vous utiliseriez echoau lieu de say. mIRC a son propre langage de script mSL (langage de script mIRC)
onkarjit
5

AutoHotkey, 50 octets

x::Send,% a!=A_Sec? A_Hour ":" A_Min ":" a:=A_Sec:

Remarques:

  1. Vous oblige à tenir xpour une sortie continue.
  2. Retirez votre doigt de xpour interrompre et terminer la sortie.
  3. La sortie est au format 24 heures.
erreurseven
la source
2
Vous pouvez, pour quelques octets supplémentaires, mettre cela dans une info-bulle afin que l'utilisateur ne soit pas tenu en attente x.
Michelfrancis Bustillos
5

C (sous Linux x64), 179 177 175 168 159 octets

#include<time.h>
#include<sys/time.h>
main(){struct timeval a;char b[9];for(;;){gettimeofday(&a,0);strftime(b,9,"%T",localtime(&a.tv_sec));puts(b);sleep(1);}}

Ungolfed:

#include <time.h>
#include <sys/time.h>
main(){
  struct timeval a;
  char b[9];
  for(;;){
    gettimeofday(&a, 0);
    strftime(b, 9, "%T",localtime(&a.tv_sec));
    puts(b);
    sleep(1);
  }
}

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.

Gamerdog
la source
Bienvenue chez PPCG! Sauf erreur, je pense que vous pouvez supprimer l'espace entre #includeet <...>. Aussi, pouvez-vous utiliser 1e6au lieu de 1000000?
Addison Crump
@VoteToClose Vous aviez raison sur les espaces dans le #includes. 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
égal
¯ \ _ (ツ) _ / ¯ Je ne connais pas vraiment C non plus. Je laisserai les professionnels à cela. Encore une fois, faites un vote. : D
Addison Crump
Ah, autre chose - vous n'avez pas besoin de couper la chaîne pour le temps, vous pouvez donc simplement sortir la date entière, à condition qu'elle contienne la chaîne de temps requise.
Addison Crump
2
Vous pouvez utiliser %Tcomme spécification de format dans strftime.
Mego
5

Jolf , 14 8 7 octets

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

TaD#`~2

(J'ai ajouté quelques constantes et ~1à ~4des puissances de 10.)

Explication

setInterval("alert(Date())",1000);
     T         a      D#   ` ~2
Conor O'Brien
la source
4
Quelqu'un devrait créer YAJSGV (Pourtant, une autre variante JavaScript de golf).
Intrepidcoder
Cela semble imprimer beaucoup plus que le temps.
Dennis
1
@ Dennis j'ai supposé que c'était bien comme par d' autres solutions
Conor O'Brien
Ma mauvaise, je n'avais lu que le vôtre et la réponse Bash.
Dennis
@Dennis Pas de problème ^ _ ^
Conor O'Brien Le
5

Dyalog APL , 27 18 16 octets

':',¨⎕TS⋄→≢⎕DL 1

Essayez-le en ligne!

⎕TSYMD hmst
':',¨prepend: à chaque
nouvelle instruction,
⎕DL 1attendez 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)

Adam
la source
4

Perl 6 , 29 octets

La bonne façon de faire ceci:

Supply.interval(1).tap: -> $ {
  say join ':',.hour,.minute,.whole-second given DateTime.now
}
await Promise.new; # halt this thread indefinitely
22:21:58
22:21:59
22:22:0
22:22:1
22:22:2
…

La version golfée

loop {sleep say join ':',now.polymod(1,60,60,24)[31]} # 56 bytes
3:59:26
3:59:27
3:59:28
3:59:29
…

Étant donné que la sortie ne doit pas nécessairement être limitée au temps, je peux la raccourcir un peu.

loop {sleep say DateTime.now} # 29 bytes
2015-11-27T22:18:10-06:00
2015-11-27T22:18:11-06:00
2015-11-27T22:18:12-06:00
2015-11-27T22:18:13-06:00
…
Brad Gilbert b2gills
la source
4

R, 38 octets

repeat{Sys.sleep(1);print(Sys.time())}

Ceci affiche l'heure actuelle au format suivant:

[1] "2015-11-28 07:34:01 CET"
Sven Hohenstein
la source
4

Powershell, 19 octets

for(){date;sleep 1}
Danko Durbić
la source
Comme il a été souligné depuis, la sortie doit simplement inclure le code hh: mm: ss que vous pouvez réduire àfor(){date;sleep 1}
Steve
4

PHP, 37 octets

<?=date('G:i:s');header('refresh:1');

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

nicael
la source
Non, pas rafraîchissant:Warning: Cannot modify header information - headers already sent
Martijn
@Martijn Je n'ai aucune idée de ce qui peut déranger, parce que ça marche pour moi :)
nicael
Je supprime le vote négatif comme avantage du doute, mais cela fonctionne exactement une fois pour moi. Essayé sur deux serveurs réguliers différents.
Martijn
2
Cela dépend si vous avez activé la mise en mémoire tampon de sortie.
Andrea
<?=header('refresh:1').date('G:i:s');devrait fonctionner avec l’un ou l’autre réglage.
Jasen
4

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

Sub a():Debug.Print Now():Application.Wait Now()+TimeValue("0:0:1"):a:End Sub

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%

Sub a():Debug.Print Now():Application.Wait Now()+1e-5:a:End Sub

Si vous souhaitez obtenir la méthode ci-dessus à 100%, vous avez besoin de 69 octets. (1/86400)

Sub a():Debug.Print Now():Application.Wait Now()+(1/86400):a:End Sub

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

Declare Sub Sleep Lib "kernel32" (ByVal k as Long)
Sub a():Debug.Print Now():Sleep(1e3):a:End Sub
JimmyJazzx
la source
3

JavaScript, 47 38 35 octets

for(p=1;t=Date();p=t)t!=p&&alert(t)

Explication

Vérifie continuellement si l’heure a changé, puis alerts’il le fait.

for(
  p=1;
  t=Date();
  p=t
)
  t!=p
    &&alert(t)
utilisateur81655
la source
Vous ne devez pas simplement obtenir la chaîne de temps. ; D tant que c'est là quelque part.
Addison Crump
@VoteToClose Oh vrai!
user81655
Ne pensez pas que vous avez besoin de +"", car sans new, Date()renvoie une chaîne.
ETHproductions
@ETHproductions Ah, oui, il en restait depuis son utilisation new. Merci d'avoir attrapé ça!
user81655
3

AppleScript, 51 35 octets

répéter
enregistrer la date actuelle
retarder 1
fin

Plutôt évident. Imprime la date actuelle, qui contient l'heure, retarde une seconde, puis continue.

Addison Crump
la source
1
Alors, attendez, est-il permis d'imprimer la date actuelle ainsi que l'heure?
Un spaghetto
@quartata Oui, toute concaténation avec l'heure, tant que l'heure est sortie en permanence et qu'il est garanti qu'elle soit sortie, est correcte.
Addison Crump
retard 1 fait quoi? pause pour 1000000000 ns?
Jasen
@ Jasen C'est correct.
Addison Crump
3

, 13 caractères / 25 octets

Ĥ⇀ôᶁ⬮+⬬),1𝕜)

Try it here(Firefox only).

Ceci est étonnamment lisible.

Maman Fun Roll
la source
4
Lorsque vous dites "étonnamment lisible", vous savez que vous avez affaire à un langage amusant. +1
Addison Crump
3

Dyalog APL, 36 octets

Pas très court cette fois.

{⎕←1↓∊'⊂:⊃,ZI2'⎕FMT 3↑3↓⎕TS⋄∇⎕DL 1}1

Cela donne l'heure sur 24 heures, à savoir:

14:37:44
14:37:45
14:37:46
...

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écursivement
marinus
la source
{⎕←1↓∊':',¨⍕¨3↑3↓⎕TS⋄∇⎕DL 1}1pour 28 octets, suffit selon OP .
Adám
Les nouvelles règles autorisent la sortie de déchets et des espaces aléatoires, vous permettant ainsi de vous en débarrasser beaucoup.
Adám
3

QBasic, 18 octets

?TIME$
SLEEP 1
RUN
Lynn
la source
3

Haskell, 98 96 85 octets

import GHC.Conc
import Data.Time
m@main=getCurrentTime>>=print>>threadDelay(10^6)>>m

Version alternative utilisant la notation do:

main = do
  time <- getCurrentTime
  print time
  threadDelay 1000000
  main

Obtient l'heure actuelle getCurrentTimedans la Data.Timebibliothèque, la dirige ensuite dans print, attend 1 000 000 microsecondes (1 seconde) et s'appelle elle-même.

Merci à nimi et mauris!

Craig Roy
la source
m@main=...>>mest toujours plus court quemain=...>>main
Lynn
De plus, comme il threadDelayest de toute façon spécifique à GHC, vous pouvez l'importer de GHC.Conc
Lynn
3

Lot - 34 40 octets

J'adore les variables intégrées:

:A                    //Set label A
echo %time%           //Print the time in 24 hour format
timeout 1    //Wait 1 second (thanks DavidPostill)
goto A                //Jump back to A and repeat

Il doit certainement y avoir une certaine sleepcommande dans Batch de si tôt.

Arbre géant
la source
Pas de sommeil intégré mais il y a un délai d'attente . Vous pouvez remplacer le ping ...avec timeout 1. De plus, l'horloge n'est pas très précise lors de l'utilisation ping. C'est mieux avec timeout;)
DavidPostill
@ DavidPostill merci pour le conseil, je n'ai jamais su qu'il y avait une telle commande dans Windows. :)
GiantTree
@GiantTree De rien;
DavidPostill,
Golf: enlever :Aet remplacer goto Apar%0
stevefestl
3

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.

import time
import datetime
while(True):
 print(datetime.datetime.now().time())
 time.sleep(1)  
Ashwin Gupta
la source
Vous pouvez remplacer Truepar 1, et si vous placez les lignes printet sleepsur la même ligne que while(séparées par un point-virgule), vous enregistrez les espaces.
undergroundmonorail
@undergroundmonorail ok merci pour le conseil True / 1. Je n'y suis pas habitué puisque Java Dosent le fait. Je ne savais pas que Python avait des points-virgules non plus. J'examinerai cela
Ashwin Gupta
3

Java, 300 166 137 125 124 octets

Près de plus de la moitié grâce à VoteToClose, Paülo Ebermann et janschweizer!

interface A{static void main(String[]a)throws Exception{for(;;Thread.sleep(1000))System.out.println(new java.util.Date());}}

Ungolfed:

interface A {
    static void main(String[] a) throws Exception {
        for (;; Thread.sleep(1000)) System.out.println(new java.util.Date());
    }
}
chat
la source
1
Simplifiez vos importations: java.util.*au lieu des deux java.utilimportations, java.text.*pour le même raisonnement. Utilisez for(;;)pour des boucles infinies. Utiliser String[]adans la déclaration principale. Utilisez interface A{static void main(..., car cela raccourcira encore plus. Vous pouvez utiliser Exceptionplus InterruptedException, et vous pouvez remplacer expar e. Vous pouvez également supprimer tout le texte à l'intérieur de la capture, car cela ne fait de toute façon rien.
Addison Crump
1
Oui, l'interface est un peu délirante - je ne vois pas pourquoi Java laisserait cela être une chose, étant donné que les interfaces sont spécifiquement conçues pour être inimaginables.
Addison Crump
1
Deux choses: vous devez changer la chaîne horaire en "HH: mm: ss" - à partir de maintenant, vous formatez "Heure: Mois: seconde". De plus, comme vous utilisez une boucle, vous pouvez vous débarrasser des déclarations de variables DateFormatet de Calendarvariables. Vous remplacez le contenu de la boucle for par System.out.println(new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()));try{Thread.sleep(1000);}catch(Exception e){}.
Addison Crump
1
Toutes les choses que je viens de suggérer, j'ai conclu: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){}}}}
Addison Crump
1
throws Exceptionest plus court qu'un essai / attrape
phase
3

Perl, 99 81 75 51 40 36 29 27 octets

sleep(print gmtime.$/);do$0
steve
la source
1
Vous pouvez le raccourcir en utilisant gmtimeau lieu de localtime.
Brad Gilbert b2gills
2
Aussiprintf"%02d:%02d:%02d\n",(gmtime)[2,1,0]
Brad Gilbert b2gills
1
gmtime."\n"forcera un contexte scalaire.
Primo
1
Vous ne devriez presque jamais avoir besoin de faire ."\n"dans le golf: utilisez .$/pour économiser 2 octets. À tout le moins, utilisez une nouvelle ligne littérale au lieu de \nsauvegarder 1 octet.
ThisSuitIsBlackNot