[VB 2005]Vor bestimmten Zahlen 0 ausgeben

Arster-Boy

Erfahrenes Mitglied
Hallo!

Ich habe eine Variable vom Typus "Integer" namens Zeit_M. Wen es interressiert, was das bedeutet, hier ist die Antwort: Zeit_Minute. Es ist also für eine Uhr, die aber schneller als normal geht. Alle Zehn Tausendstel wird sie um einen Wert erhöht. Ich möchte, dass, wenn die Variable den Wert 0, 1, 2, 3, 4, 5, 6, 7, 8 oder 9 hat, vor diesen Zahlen eine Null steht.

So sieht mein Code aus:
Code:
        If Zeit_M =  0 Then
            Zeit_M  = "00"
        End If
        If Zeit_M = 1 Then
            Zeit_M = "01"
        End If
        If Zeit_M = "2" Then
            Zeit_M = "02"
        End If
        If Zeit_M = "3" Then
            Zeit_M = "03"
        End If
        If Zeit_M = "4" Then
            Zeit_M = "04"
        End If
        If Zeit_M = "5" Then
            Zeit_M = "05"
        End If
        If Zeit_M = "6" Then
            Zeit_M = "06"
        End If
        If Zeit_M = "7" Then
            Zeit_M = "07"
        End If
        If Zeit_M = "8" Then
            Zeit_M = "09"
        End If
        If Zeit_M = "9" Then
            Zeit_M = "09"
        End If

Das klappt jedoch nicht...
Ich habe es vor dem Code gesetzt, der die Zeit anzeigt...
 
Zeit_M ist denke mal vom Typ string oder?

Code:
If Convert.ToInt32(Zeit_M) <=  9 Then
   Zeit_M = "0"+Zeit_M;
End If
Im Grunde konvertiere ich den string von Zeit_M nach int und prüfe ob dieser Wert kleiner gleich 9, wenn ja, 0 anhängen.

Oder alternativ, einfach über die formatierung von ToString Regeln
Code:
Zeit_M = Convert.ToInt32(Zeit_M).ToString("00")
 
Zeit_M ist vom Typus "Integer". Das habe ich auch geschrieben...

Und ich will die null nicht anhängen, sondern vor den wert schreiben.

Wieso muss ich es denn Konventieren?
 
ah sorry Integer hab ich irgendwie überlesen :-(
Deine IF Abfragen haben mich irgendwie irritiert.
Bei meinen Beispielen bin ich von ausgegangen das Zeit_M ein String ist.

Allerdings bräuchtest du ein String da bei Integer die angehängte null nicht mit beachtet wird.
Die Frage ist was hast du weiteres mit Zeit_M vor.

Aber im Grunde kannst du Zeit_M auch direkt so zurückgeben
Code:
Zeit_M.ToString("00")
ToString gibt einen String zurück und die Formatierung wird von DotNet vorgenommen.
Und alle einstelligen Werte bekommen eine 0 vorgesetzt.
 
Zeit_M wird in einem Label ausgegeben.
Leider klappt es bei mir nicht...
Visual Basic:
Imports System.IO
Public Class arbeitszimmer
Shared Zeit_M As Integer

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Z_M As Integer
        Using reader As StreamReader = New StreamReader("..\..\data\zeit_m.txt")
            Z_M = reader.ReadLine()
            Zeit_M = Z_M
            reader.Close()
        End Using

        If Zeit_M <= 9 Then
            Zeit_M.ToSring("0" & Zeit_M)
        End If
End Sub
Bitte kopieren und berichtigen...
 
Hi,

toString(.. gibt einen String zurück.

also wenn dann ..

string zeitString = "";

If Zeit_M <= 9 Then

zeitString = Zeit_M.ToString("0" & Zeit_M)
//oder zeitString = Zeit_M.ToString("00");

End If


mfg
Martin
 
einfach nur
Code:
meinLabel.Text=Zeit_M.ToString("00")
die Formatierung der Werte übernimmt dabei die ToString Funktion
Schau dir die Hilfe am besten zu ToString an.
 

Neue Beiträge

Zurück