буквально печатать целые числа с ведущими 0 - PullRequest
2 голосов
/ 28 ноября 2011

Я пытаюсь напечатать цифры наподобие 0101 .... 1231, где первые две цифры - месяцы, а следующие две - дни.Я сделал это:

int d, m;
for (m = 01; m <= 12; m++)
    for (d = 01; d <= 31; d++)
        Console.WriteLine(loc + m.ToString() + d.ToString());
//      Directory.CreateDirectory(loc + m.ToString() + d.ToString());

Это печатные цифры, например 11 вместо 0101. Как я могу печатать целые числа от 1 до 9 как 01-09?

Ответы [ 3 ]

5 голосов
/ 28 ноября 2011
Console.WriteLine(loc + m.ToString("D2") + d.ToString("D2"));

См. Стандартные строки числового формата [MSDN] для справки.

Несмотря на то:

        var date = new DateTime(2011, 1, 1);
        while (date < new DateTime(2012, 1, 1))
        {
            Console.WriteLine(loc + date.ToString("MMdd"));
            // ^ MMdd stands for Month-Month, day-day (indicating you want them both displayed in a double digit format)
            // (uppercase M is used because lowercase m is already taken, it stands for minutes)
            date = date.AddDays(1);
        }

даст вам более удобный контроль над форматом выходной даты и поможет избежать распечатки несуществующих дат (например, 31 апреля или 30 февраля)

См. Метод DateTime.ToString (String) [MSDN] для справки.

2 голосов
/ 28 ноября 2011

Использовать String.Format() метод.

Console.WriteLine(string.Format("{0:00}{1:00}", m, d));
2 голосов
/ 28 ноября 2011
ToString("D2")

Это даст вам целое число с двумя цифрами.Измените номер на большее количество цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...