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

Windows Forms Discussion :

[C#] Diviser une String par un Int


Sujet :

Windows Forms

  1. #1
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut [C#] Diviser une String par un Int
    Bonjour,

    Voilà j'ai la commande suivante pour donner
    en milièmes de secondes le temps déroulé depuis le démarrage de l'ordi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.TickCount.ToString()
    J'aimerai donc le convertir en h:m:s mais comment le diviser par 1000
    pour les secondes puis par 60 pour les minutes et encore par
    60 pour les heures ?

    Merci

  2. #2
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    En fait voilà tout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void SendMSNMessage(bool enable, string category, string message)
    Et donc l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMSNMessage(true, "Office", Environment.TickCount.ToString());
    Si qqun sait...

    Merci

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Utilise System.Math.DivRem()

    pour les divisions entieres

    ça doit donner un truc du style (tu feras la traduction C#):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MilliSecondes As Integer = Environment.TickCount.ToString()
    Dim Secondes As Integer = System.Math.DivRem(MilliSecondes, 1000, MilliSecondes)
    Dim Minutes As Integer = System.Math.DivRem(MilliSecondes, 60, MilliSecondes)
    Dim Heures As Integer = System.Math.DivRem(MilliSecondes, 60, MilliSecondes)
    Dim Jours as Integer = System.Math.DivRem(MilliSecondes, 24, MilliSecondes)

  4. #4
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Merci je testerai ça un peu plus tard et je vous tiens au courant

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    autre possibilité et a mon avis la mieux :
    initialise une variable du type TimeSpan avec ta valeur en ms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TimeSpan MyTime = TimeSpan(0,0,0,Environment.TickCount)
    ensuite tu peut recuperer ton temps dans n'importe quelle unité et tu peut faire des calculs de temps sans convertir !
    Bref le pied ^^

    PS: c'est un peu bete quand même de convertir un int en string et de le mettre dans un int pour le reconvertir une deuxieme fois : parce que ton appel
    ben il te retourne un int ... allez sans rancune la prochaine fois : msdn

  6. #6
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Merci pour vos réponses...

    Bon c'est vrai c'est pas très malin

    Donc c'est bon j'ai mis en Int d'origine mais je n'arrive toujours pas
    à en faire un format h:m:s, je n'ai pas réussi à faire marcher ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TimeSpan MyTime = TimeSpan(0,0,0,Environment.TickCount)
    Encore Merci

  7. #7
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Donc j'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string temps = "" + Environment.TickCount / 1000 / 60 / 60 + " heure(s) " + Environment.TickCount/1000/60 + " minute(s) et " + Environment.TickCount / 1000 + " seconde(s) !"  ;
                SendMSNMessage(true, "Office", temps);
    Mais j'ai un petit blem, en fait ça m'affiche en total d'heure, en total
    de minutes et en total de secondes

    genre 1 heure 64 minutes et 3857 secondes...

    Comment lui faire comprendre qu'il ne faut pas dépasser 60 pour les secondes et les minutes ?

    Merci pour tout...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    mais arrete de vouloir calculer absolument de maniere compliquer lorsque tu peut faire simple, il existe un type temps en .NET qui utilise la classe TimeSpan pour le Framework 2.0
    quel framework utilise-tu ?

    EDIT: si il s'agit du framework 2.0 et du C#, alors voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TimeSpan MyTime = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
    apres pour recuperer ton temps dansune chaine pour l'afficher :
    et pour recuperer chaque unite separement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MyTime.Days;
    MyTime.Hours;
    etc ....
    et biensur fonction ToString() pourtransformer tes int en chaine

  9. #9
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Merci bcp c'est nickel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/03/2015, 11h17
  2. [AC-2003] Problème simple: retrouver une string par son ID
    Par yupyupxav dans le forum IHM
    Réponses: 1
    Dernier message: 07/02/2010, 23h03
  3. Réponses: 9
    Dernier message: 11/03/2009, 15h26
  4. [débutant]diviser une List par paquet
    Par pingoui dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 01/09/2007, 19h24
  5. Réponses: 2
    Dernier message: 15/03/2005, 16h40

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