数字没有格式——整数就是整数,所以数字三可以同样表示为 03、3、0x3 等。
此外,您只是添加数字 - 您没有连接字符串表示。所以第一个数字可能是 50,第二个可能是 6,第三个可能是 3……所以你最终得到 59,而不是 500603,这可能是你所期望的。
您可以简单地将年份乘以 10000,将月份乘以 100,但存储一个DateTime
值肯定会更好。
获得(比如说)1950 年和 2050 年之间的随机日期的最简单方法是:
int year = random.Next(100) + 1950;
int daysInYear = DateTime.IsLeapYear(year) ? 366 : 365;
DateTime date = new DateTime(year, 1, 1).AddDays(random.Next(daysInYear));
通过这种方式,您可以获得一年中所有正确的日子,没有无效的日子 - 例如,在您的原始代码中,您很容易在 2 月 30 日结束...假设您实际上已修复您的代码以考虑到事实上,第二个论点Random.Next
是排他性的而不是包容性的。(否则你永远不会得到第 30 个,你也永远不会得到 12 月的值......)
尽可能使用最合适的数据类型很重要。如果要表示日期,请使用与日期相关的类型。如果要表示文本,请使用字符串。如果要表示数字,请使用适当的数字类型。你会发现,如果你使用正确的数据类型,你可以摆脱很多错误。