Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按日期顺序排列字符串。_C#_Asp.net_Loops - Fatal编程技术网

C# 按日期顺序排列字符串。

C# 按日期顺序排列字符串。,c#,asp.net,loops,C#,Asp.net,Loops,我有一个函数,它给我12位字符串 例如 AA 01 201 210 22 AA 02 201 210 22 . . AA 99 201 210 22 AB 01 201 210 22 & so on. . . 现在的问题是,第二天这个序列应该从AA 01 201 210 23重新开始 有人能帮我吗。 无论您在哪里存储n,都要在其旁边存储一个DateTimedt 每次递增n,检查dt是否等于Datetime。今天 如果是,请像以前一样传递n 如果没有,则将n设置为零(或一),并将dt

我有一个函数,它给我12位字符串

例如

AA 01 201 210 22
AA 02 201 210 22
.
.
AA 99 201 210 22
AB 01 201 210 22
& so on. . .

现在的问题是,第二天这个序列应该从AA 01 201 210 23重新开始

有人能帮我吗。

  • 无论您在哪里存储
    n
    ,都要在其旁边存储一个DateTime
    dt
  • 每次递增
    n
    ,检查
    dt
    是否等于
    Datetime。今天
    • 如果是,请像以前一样传递
      n
    • 如果没有,则将
      n
      设置为零(或一),并将
      dt
      设置为
      DateTime.Today
(我还将
dt
传递到
GetPersonalId
中,而不是在函数中使用
DateTime.Today
,以防
DateTime.Today
两种用法之间的日期变化)

e、 g.如果你有

int currentN = 0;

...

string GetNextPersonalId()
{
    currentN += 1;
    return GetPersonalId(currentN);
}
换成

int currentN = 0;
DateTime currentDay = DateTime.Today;

...

string GetNextPersonalId()
{
    if (DateTime.Today == currentDay)
    {
        currentN += 1;
    }
    else
    {
        currentN = 0; // or 1
        currentDay = DateTime.Today;
    }
    return GetPersonalId(currentN);
}

想法是:每天您需要将“n”值重置为1

使此功能按预期工作的最简单方法:

  • 保留前一天生成的最后一个ID(-s)或从数据库获取该ID;主要情况-最新情况,而不是今天
  • 将“n”作为当前ID和步骤1中ID之间的差值传递)
    当前代码有什么问题?@w0lf当前代码工作正常。。。。但是对于第二天,这个序列应该从AA 01 201 210 23重新开始…如何做…?您如何生成传递给函数的
    n
    ?@w0lf,我猜变量“letter1”和“letter2”在日期更改时没有重置为默认值。@oded是一个自动递增的编号,每次在我们的网站上注册新用户时都会生成该编号。。
    int currentN = 0;
    DateTime currentDay = DateTime.Today;
    
    ...
    
    string GetNextPersonalId()
    {
        if (DateTime.Today == currentDay)
        {
            currentN += 1;
        }
        else
        {
            currentN = 0; // or 1
            currentDay = DateTime.Today;
        }
        return GetPersonalId(currentN);
    }