IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Récupérer la date à partir de l'Internet


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Récupérer la date à partir de l'Internet
    Bonjour,
    je développe une application sur WPF et j'ai besoin de se connecter sur internet pour récupérer la date.

    personne a t'il une solution ???

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    un exemple depuis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    public static DateTime GetNISTDate(bool convertToLocalTime)
    {
        Random ran = new Random(DateTime.Now.Millisecond);
        DateTime date = DateTime.Today;
      string serverResponse = string.Empty;
     
        // Represents the list of NIST servers
        string[] servers = new string[] {
                             "64.90.182.55",
                             "206.246.118.250",
                             "207.200.81.113",
                             "128.138.188.172",
                             "64.113.32.5",
                             "64.147.116.229",
                             "64.125.78.85",
                             "128.138.188.172"
                              };
     
        // Try each server in random order to avoid blocked requests due to too frequent request
      for (int i = 0; i < 5; i++)
        {
            try
            {
      // Open a StreamReader to a random time server
      StreamReader reader = new StreamReader(new System.Net.Sockets.TcpClient(servers[ran.Next(0, servers.Length)], 13).GetStream());
      serverResponse = reader.ReadToEnd();
                reader.Close();
     
      // Check to see that the signiture is there
                if (serverResponse.Length > 47 && serverResponse.Substring(38, 9).Equals("UTC(NIST)"))
                {
                    // Parse the date
      int jd = int.Parse(serverResponse.Substring(1, 5));
                    int yr = int.Parse(serverResponse.Substring(7, 2));
                    int mo = int.Parse(serverResponse.Substring(10, 2));
                    int dy = int.Parse(serverResponse.Substring(13, 2));
                    int hr = int.Parse(serverResponse.Substring(16, 2));
                    int mm = int.Parse(serverResponse.Substring(19, 2));
                    int sc = int.Parse(serverResponse.Substring(22, 2));
     
      if (jd > 51544)
                        yr += 2000;
                    else
                        yr += 1999;
     
      date = new DateTime(yr, mo, dy, hr, mm, sc);
     
                    // Convert it to the current timezone if desired
      if (convertToLocalTime)
                        date = date.ToLocalTime();
     
                    // Exit the loop
                    break;
                }
     
            }
            catch (Exception ex)
            {
                /* Do Nothing...try the next server */
            }
        }
     
        return date;
    }

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    merci, ça marche très bien mais ça demande environ 50 secondes pour donner la résultat. y a t'il une solution pour optimiser ce code???

  5. #5
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    a mon avis tu peux faire un backgroundworker pour que tu prépares la datetime.

    sinon tu peux mettre a jour la datetime de ton PC avec se backgroundworker. par la suite DateTime.now te donnera une bonne valeur ,non?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    tu veut dire que je dois exécuter ce code dans un thread a part??? en tous cas merci.

  7. #7
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Oui. Relire c est interisant

  8. #8
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    pour récupèrer plus de serveur time tu peux aller a temps internet en cliquant sur l horloge (bureau/barre de tâches)



Discussions similaires

  1. Récupérer un Date à partir d'un JFormattedTextField
    Par byubi dans le forum Composants
    Réponses: 2
    Dernier message: 29/04/2010, 13h11
  2. Récupérer la date à partir d'un numéro de semaine et de l'année
    Par aurelientp dans le forum Général Java
    Réponses: 4
    Dernier message: 11/01/2010, 13h43
  3. récupérer la date à partir d'un textbox
    Par fboss dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/06/2009, 14h44
  4. Récupérer une date à partir d'un format UNIX
    Par Spack dans le forum Programmation et administration système
    Réponses: 8
    Dernier message: 09/02/2009, 14h46
  5. Réponses: 2
    Dernier message: 13/02/2007, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo