zu doof fuer string.Format ?
-
problem ist hauptsaechlich - wie kann ich fuehrende nullen einfuegen lassen ?
die MSDN ist zwar sehr ausfuherlich geschrieben - hilft mir aber irgendwie nicht weiterDer sourcecode spricht fuer sich selber /= besonders der teil mit der TimeSpan - diesen brauch ich wirklich /=
static void Main(string[] args) { int number1 = 5; // needed: "AA05AA" Console.WriteLine(string.Format("AA{0}AA", number1)); // AA5AA Console.WriteLine(string.Format("AA{0,0}AA", number1)); // AA5AA Console.WriteLine(string.Format("AA{0,2}AA", number1)); // AA 5AA Console.WriteLine(string.Format("AA{0,02}AA", number1)); // AA 5AA Console.WriteLine(string.Format("AA{0:D}AA", number1)); // AA5AA Console.WriteLine(string.Format("AA{0,2:D}AA", number1)); // AA 5AA Console.WriteLine(string.Format("AA{0:DD}AA", number1)); // AADDAA // ???? // MFC.Format("AA%02dAA", number1) // AA05AA float number2 = 5.5F; // needed: "AA05,50AA // , or . doesn't matter Console.WriteLine(string.Format("AA{0}AA", number2)); // AA5,5AA Console.WriteLine(string.Format("AA{0,0}AA", number2)); // AA5,5AA Console.WriteLine(string.Format("AA{0,2}AA", number2)); // AA5,5AA Console.WriteLine(string.Format("AA{0,02}AA", number2)); // AA5,5AA Console.WriteLine(string.Format("AA{0:F}AA", number1)); // AA5,00AA Console.WriteLine(string.Format("AA{0,2:F}AA", number1)); // AA5,00AA Console.WriteLine(string.Format("AA{0:FF}AA", number1)); // AAFFAA // ???? // MFC.Format("AA%02,2f", number2) // AA05.05AA DateTime time = new DateTime(2008, 7, 22, 7, 5, 3); // needed: "AA07:05:03AA Console.WriteLine(string.Format("AA{0:T}AA", time)); // AA07:05:03AA - OK Console.WriteLine(string.Format("AA{0:hh}:{0:mm}:{0:ss}AA", time)); // AA07:05:03AA - OK TimeSpan span = System.DateTime.Now - time; // needed: AA00:42:57AA Console.WriteLine(string.Format("AA{0:T}AA", span)); // AA00:42:57.2954368AA Console.WriteLine(string.Format("AA{0}:{1}:{2}AA", span.Hours, span.Minutes, span.Seconds)); // AA0:42:57AA Console.WriteLine(string.Format("AA{0,2}:{1,2}:{2,2}AA", span.Hours, span.Minutes, span.Seconds)); // AA 0:42:57AA Console.WriteLine(string.Format("AA{0:hh}:{0:mm}:{0:ss}AA", span)); // AA00:42:57.2954368:00:42:57.2954368:00:42:57.2954368AA // ?? // MFC:Format("AA%02d:%0d2:%02dAA", span.Hours, span.Minutes, span.Seconds); // AA00:42:57AA }
-
Führende 0en hängen wohl ein wenig vom Datentyp bzw. FormatProvider ab. Bei einem "Hallo Welt" macht das IMHO z.B. keinen Sinn.
string xret = string.Format("{0:000}", 12);
-
ah - verstehe
also
string.Format("AA{0:00}AA", number1);
wird AA05AA ergeben - sehr schoenaber wie ist das mit der TimeSpan ?
die sache ist die
ich hab hier ein "Please Wait" mit infotext, progress, remaining und elapsed time
diese zeit wird berechnet indem ich mit die zeit merk wann es gestartet wurde - und dann bei einem 1sec timer
current - start berechne
da erhalte ich eine timespan
und egal wie ich es nu mach - es werden stets noch millisekunden angegeben
und das hh mm ss ist noch merkwuerdiger - siehe beispiel obenkann ich dort nur mit
string.Format("AA{0:00}:{1:00}:{2:00}AA", span.Hours, span.Minutes, span.Seconds)
arbeiten - das scheint gut zu funzen// mit google stimmt - haette des auch bemuehen koennen - arbeite daheim am lappy komplett ohne internet - bins nicht mehr gewohnt nach fragen zu googlen #gg
-
TimeSpan hab ich ehrlich gesagt noch nie benutzt. Ein wenig gg bringt aber zu Tage, das es um den Typ ein wenig Verwirrung gibt. Wenn Du die Formatierung gar nicht so hin bekommst wie Du es brauchst, kannst Du auch nen eigenen FormatProvider schreiben.
-
jo, danke - mit dem einzelnen holen mittels 0:00 usw komm ich auf die richtige ausgabe
dankefind aber nichts verwirrend - komm damit super klar {o; - mir das mit dem hh mm ss ist ja grausig