2010-09-20 4 views
0

J'essaie de compiler ma première application C# (basée sur Visual Studio) ... en utilisant aussi Windows Forms pour la saisie (de l'utilisateur) et sortie. L'utilisateur place des nombres dans six zones de texte (par exemple, 2009 20 02 02:49:35), puis lorsque le bouton «Convertir» est cliqué, le programme affiche E1234FB3278DC0 dans une zone de texte différente.C# - Récupère l'entrée de l'utilisateur, convertit les données entrées puis les affiche dans une boîte de texte

Vous ne savez pas si cela est pertinent, mais E1234FB3278DC0 = 63370694975000000 (en décimal). Oh aussi, je ne suis pas sûr à propos de convertText.writeline ... devrait-il être this.textBox7 = microseconds;

?

 String dateString = yyyy.Text + dd.Text + mm.Text + hh.Text + mm.Text + ss.Text; 
     DateTime timestamp = DateTime.ParseExact(dateString, "yyyy dd mm hh:mm:ss", CultureInfo.CurrentCulture); 
     long ticks = timestamp.Ticks; 
     long microseconds = ticks/10; 
     convertedText.WriteLine(microseconds.ToString("X")); 

Merci à l'avance .. Et je dois remercier Luxspes pour la version originale.

Répondre

1

Quelques conseils sur cet extrait de code. Tout d'abord, il est vraiment étrange que vous utilisiez le même objet "mm" pendant des mois et des minutes. Le même problème avec le spécificateur de format. Pour analyser le mois, vous devez utiliser "M".

long ticks = timestamp.Ticks; 
    long microseconds = ticks/10; 
    convertedText.WriteLine(microseconds.ToString("X")); 

Ainsi, si votre date vous avec succès parsé obtenir le nombre de microsecondes qui se sont écoulés depuis 12:00:00 minuit, le 1er Janvier 0001. E1234FB3278DC0 de Il en hexadécimal (pour la date dans votre question) . Mais dans votre cas la date représentée dans les secondes. Donc, le nombre de microsecondes sera toujours.

timestamp.Millisecond*1000; 

Je n'ai aucune idée du type d'objet convertedText. Mais il me semble que ce n'est pas un problème.

Essayez d'utiliser le code suivant:

String dateString = yyyy.Text+dd.Text+M.Text+hh.Text+mm.Text+ss.Text; 
DateTime dateTime = DateTime.ParseExact(dateString, "yyyy dd M hh:mm:ss", CultureInfo.CurrentCulture); 
long microseconds = dateTime.Ticks/10; 
convertedText.Text = microseconds.ToString("X"); 
+0

le type de convertedText est zone de texte. mais il est mal en quelque sorte (a obtenu une erreur - System.Windows.Forms.TextBox 'ne contient pas une définition de' WriteLine ') – Mark

+0

accrocher là, je dois juste m'assurer qu'il fonctionne d'abord. Mais j'ai une erreur quand je clique sur le bouton 'Convertir'. est ici le nouveau code: private void (object sender, EventArgs e) {button1_Click Chaîne dateString = yyyy.Text + mm.Text + dd.Text + hh.Text + M.Text + ss.Text; DateTime timestamp = DateTime.ParseExact (dateString, "aaaa jj MM hh: mm: ss", CultureInfo.CurrentCulture); longues graduations = timestamp.Ticks; microsecondes longues = tiques/10; convertedText.Text = microseconds.ToString ("X"); } – Mark

+0

Je vois. Votre code ne compile pas. Essayez de changer: 1) format de date: "aaaa jj Mhh: mm: ss"; 2) ajouter TextBox pour les minutes 3) utiliser la propriété convertedText.Text pour attribuer du texte. –

Questions connexes