string naar meerdere ints

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
hallo,

ik heb een methode die mij een string geeft in het volgende formaat:
<hours> : <minutes> : <seconds>.
dus bijvoorbeeld:
13:2:1
nu moet ik een nieuwe methode maken die dit weer omzet naar totaal seconden.
daarom wil ik ze eerst terug zetten naar integers.
hoe kan ik zorgen dat deze om worden gezet naar int waarden.
dus naar in uur = 13; int minuut = 3 ; int seconden =1;

mvg
 
Laatst bewerkt:
Gebruik de "Split" method van System.String.

Code:
private int[] GetTimes(string input)
{
    string[] timestamps = input.Split(Convert.ToChar(":"));

    int[] times = new int[timestamps.Length];

    for (int i = 0; i < timestamps.Length; i++)
    {
        times[i] = Convert.ToInt32(timestamps[i]);
    }

    return times;
}

Eventueel bij het omzetten controleren of het geen tekst is enzo ;)
 
ok nu zet ik dus alles in een array.
maar hoe zet ik het van de array om aar een int.
controleren hoeft niet want dat gebeurt al bij het toevoegen van een nieuwe time ;)
 
Misschien kun je alles beter in een class zetten zodat het in de normale code netjes blijft

Code:
    public class TimeStamp
    {
        public int Hours { get; set; }
        public int Minutes { get; set; }
        public int Seconds { get; set; }
        
        public TimeStamp()
        {
            Hours = 12;
            Minutes = 0;
            Seconds = 0;
        }

        public void SetFromString(string input)
        {
            var timestamps = input.Split(Convert.ToChar(":"));
            var times = new int[timestamps.Length];

            for (int i = 0; i < timestamps.Length; i++)
            {
                times[i] = Convert.ToInt32(timestamps[i]);
            }

            Hours = times[0]; 
            Minutes = times[1];
            Seconds = times[2];
        }

        public string GetDisplayTime()
        {
            return String.Format("{0:00}:{1:00}:{2:00}", Hours, Minutes, Seconds);
        }


Dan doe je in de code gewoon:

Code:
            var ts = new TimeStamp();
            ts.SetFromString("12:1:2");

            txtTime.Text = ts.GetDisplayTime();

            txtHours.Text = ts.Hours.ToString();
etc

Zo kun je de "timestamp" per string aanpassen en ook gewoon per hours/min/sec (wel input checken, bv minutes > 60 ... do this.. ;))
 
@Bloodshed, hiervoor is de DateTime class :)

Je parsed de tijd naar een DateTime var,
Code:
DateTime t = DateTime.Parse("13:2:1");

Vervolgens kan je simpelweg de uren/minuten/seconden ophalen met t.Hour, t.Minute en t.Second.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan