我有一个案例,我必须根据特定模式生成交易号模式如下:
MA 0000000/dd/mm/YYYY/00000
其中第一个零是随机数,然后当前日期和最后一个零应该是递增的
(00001... 00010... 00100... 00578)
您能否提供正确的方法来实施此案例。
我有一个案例,我必须根据特定模式生成交易号模式如下:
MA 0000000/dd/mm/YYYY/00000
其中第一个零是随机数,然后当前日期和最后一个零应该是递增的
(00001... 00010... 00100... 00578)
您能否提供正确的方法来实施此案例。
public static class Generator
{
static int current = 0;
static Random rand = new Random();
public static string NextId()
{
return string.Format("MA {0:0000000}/{1}/{2:00000}",
rand.Next() % 100000,
DateTime.Now.ToString("dd/MM/yyyy"),
current++ );
}
}
public string NextId(int lastCount)
{
var rand = new Random();
return string.Format("MA{0:0000000}/{1}/{2:00000}",
rand.Next(9999999),
DateTime.Today.ToString("dd/MM/yyyy"),
lastCount + 1);
}
Random rand = new Random();
int randomNumber = rand.Next(100000000);
int counter = 1;
string str = "MA" + randomNumber.ToString() + DateTime.Now.ToString("/dd/MM/yyyy/") + counter.ToString("X4");
Console.WriteLine(str);
可能您关心两件事: DateTime 格式:您可以使用:DateTime.Now.ToString("/dd/MM/yyyy/")
和
将前导零填充到数字中,您可以使用:
counter.ToString("X4")
另请参阅:如何:用前导零填充数字
Random rand = new Random();
string random = rand.Next(10000000).ToString("D7");
string date = DateTime.Today.ToString("dd/MM/yyyy");
string increment = inc.ToString("D5");
String.Format("MA {0}/{1}/{2}", random, date, increment);
其中 inc 是增量数。你应该知道这一点,或者找出下一个数字应该是什么。
for(int i=0;i<n;i++)
{
Console.WriteLine("MA "+(new Random()).Next(0,100).ToString("D7")+DateTime.Now.ToString("dd/MM/yyyy")+ i.ToString("D5"));
}
whereNext()
生成 0 到 100 之间的随机数
i.ToString("D5")
会给你00001 ..格式的号码