2017-06-21 1 views
0

com Je fais un projet pour mon examen de programmation, ce sera un examen facile, et donc je n'aurai besoin que de créer une application de console simple et basique. Mais, même si c'est simple, je veux vraiment le pimenter. J'ai déjà fait une horloge simple:Comment puis-je faire une mise à jour en continu de l'horloge dans une application console?

 static public void clock() 
    { 
     Console.SetCursorPosition(0, 0); 
     Console.WriteLine("{0:D} {0:t}", DateTime.Now); 
     Console.WriteLine(""); 
    } 

Je ferai référence à cette méthode dans le programme en utilisant le nom « horloge; » comme indiqué ici:

     Console.Clear(); 
        clock(); 
        Console.WriteLine("┌───────────────────────────────────┐"); 
        Console.WriteLine("|  Welcome to the Festival  |"); 
        Console.WriteLine("└───────────────────────────────────┘"); 

Est-il possible d'ajouter quelques secondes à l'horloge, et le faire mettre à jour en permanence, et le faire d'une manière simple? Une façon qu'un programmeur débutant pourrait expliquer, comme je devrais le faire. Merci!

+2

Votre question sera améliorée, et sera examiné par plus de personnes si vous incluez le code comme texte directement dans votre question, plutôt que d'exiger que les gens visitent un site externe. – hatchet

+0

Merci hatchet, j'ai re-fait la question, avec des extraits de code au lieu de l'imagerie. – Tovleman

Répondre

0

Pour inclure les secondes dans votre sortie de temps, vous pouvez utiliser

Console.WriteLine("{0:D} {0:T}", DateTime.Now); 

Pour mettre à jour le temps, vous pouvez utiliser System.Timer, ou si vous voulez quelque chose de rapide et facile (bien qu'un peu hacky), vous pouvez Il suffit d'utiliser une boucle avec un System.Threading.Sleep(500) et d'appeler votre méthode d'horloge. Bien sûr, cela fonctionnerait pour toujours (ou jusqu'à ce que vous fermiez la fenêtre de commande).

0

C'est certainement pas à toute épreuve, car il n'y a aucun moyen « facile » de faire correctement ce ... mais il peut le faire pour vos besoins:

static void Main(string[] args) 
    { 
     Task.Run(() => { 
      while (true) 
      { 
       // save the current cursor position 
       int x = Console.CursorLeft; 
       int y = Console.CursorTop; 

       // update the date/time 
       Console.SetCursorPosition(0, 0); 
       Console.Write(DateTime.Now.ToString("dddd, MMMM d, yyyy hh:mm:ss")); 

       // put the cursor back where it was 
       Console.SetCursorPosition(x, y); 

       // what one second before updating the clock again 
       System.Threading.Thread.Sleep(1000); 
      } 
     }); 

     Console.SetCursorPosition(0, 2); 
     Console.WriteLine("┌───────────────────────────────────┐"); 
     Console.WriteLine("|  Welcome to the Festival  |"); 
     Console.WriteLine("└───────────────────────────────────┘"); 

     Console.WriteLine(""); 
     Console.Write("Please enter your name: "); 
     string name = Console.ReadLine(); 
     Console.WriteLine("Hello {0}!", name); 

     Console.WriteLine(""); 
     Console.Write("Press Enter to Quit..."); 
     Console.ReadKey(); 
    }