字面上打印带有前导0的整数

时间:2011-11-28 08:37:35

标签: c# c#-4.0

我正在尝试打印数字,如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 个答案:

答案 0 :(得分:5)

Console.WriteLine(loc + m.ToString("D2") + d.ToString("D2"));

请参阅Standard Numeric Format Strings [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);
        }

可以让您更方便地控制输出日期格式,并帮助您避免打印出不存在的日期(例如4月31日或2月30日)

请参阅DateTime.ToString Method (String) [MSDN]以供参考。

答案 1 :(得分:2)

ToString("D2")

这将为您提供两位数的整数。更改数字以获得更多数字。

答案 2 :(得分:2)

使用String.Format()方法。

Console.WriteLine(string.Format("{0:00}{1:00}", m, d));
相关问题