Je ne peux pas convertir le texte (dans J'ai une erreur en ligne: Timespan T
L'erreur est la suivante: la chaîne d'entrée n'était pas dans un format correct p> annulation publique A (MaskedTextBox K, MaskedTextBox K1, MaskedTextBox K2, Étiquette K3)
{
chaîne [] heure = k.text.split (':');
essayer
{
int h = int.parse (heure [0] .tostring ();
int m = int.parse (heure [1] .tostring (); p> maskedtextbox code>) vers un
DateTime code>.
Par exemple, j'ai ces moments dans les masques:
16:30 code>,
6:30 code>
Je veux montrer en troisième masqué
10:00 code>
Voici mes codes: j'écris une méthode
3 Réponses :
Vous travaillez réellement avec tispan code> (pas
datetime code>); Vous devriez
PAR analysez CODE>, faites arithmétiques em> et, enfin, formatez le résultat en tant que
chaîne code>:
Chère . Les temps (comme 6h30) doivent entrer par la personne dans MaskedTextBox. Nous pouvons écrire des chiffres dans nos codes
@MOHSENBAHAR: Eh bien, nous pouvons facilement mettre somemaskedbox.text code> au lieu de valeurs (démo)
Le fil d'alimentation n'était pas au bon format.' (dans la première ligne (à gauche))
@MOHSENBAHAR: Quelles sont les chaînes que vous mettez dans maskedbox code>? Pourriez-vous mettre un points d'arrêt i> et inspecter
maskedbox1.text code>? Vous voudrez peut-être vous débarrasser des espaces bleus, du rembourrage, etc.
mon maskedtexbos est défini sur l'Europe Time (11h30) Cette boîte remplir par l'utilisateur
@MOHSENBAHAR: Je vois; Cependant, il semble que la chaîne réelle i> code> n'est pas exactement
"11:30" code> mais contient des caractères supplémentaires i> (disons, blouses) Quelque chose comme
"11:30" code>. Les espaces de pointe / de fin peuvent être supprimés par simple
.trim () code>; Si la chaîne contient des espaces blanches en elle-même, ils peuvent être supprimés par Linq:
string.concat (maskedbox1.text.Où (C => C! = Char.iswitpace (C))) Code>
Vous pouvez essayer de suivre les codes suivants:
'' ' p>
var timeString1 = "16:30"; var timeString2 = "6:30"; //Make sure the parse input string match the HH:mm format timeString1 = timeString1.PadLeft(5, '0'); timeString2 = timeString2.PadLeft(5, '0'); var time1 = DateTime.ParseExact(timeString1, "HH:mm", null); var time2 = DateTime.ParseExact(timeString2, "HH:mm", null); var timeSpan12 = time1 - time2; var result = $"{timeSpan12.Hours:d2}:{timeSpan12.Minutes:d2}"; Console.WriteLine(result);//10:30
Public statique Long Time (String t) { revenir (long.parse (T.Substring (0,2)) * tispan.ticksperhour) + (Long.Parse (T.Substring (3,2)) * Timespan.Ticksperminute); P>
NOCAL PUBLIQUE Calculer (MaskedTextBox A, MaskedTextBox B, MaskedTextBox C)
{ p>
Pouvez-vous montrer votre code?
Essayez un
Timespan code> plutôt qu'un
DateTime code>, en supposant que les deux fois sont le même jour
Voulez-vous toujours montrer un nombre positif ou est une fois considéré comme «d'abord» et l'autre devrait être soustrait de celui-ci, même s'il s'agit d'un plus grand nombre?