【问题标题】:ASP.NET MVC - Get the latest date even if it has the same dateASP.NET MVC - 获取最新日期,即使它具有相同的日期
【发布时间】:2013-12-06 06:59:59
【问题描述】:

下面的代码显示了最近日期的状态。它比较第一个日期是否比第二个日期新,依此类推。但我有一个问题。如果第一个日期和第二个日期相同怎么办?

例如,第一个日期是 2013-04-15 (a_mm_date),第二个日期是 2013-04-15 (a_uat_date)。 a_mp_date 为空,所以没关系。所以它是这样的:a_mm_date -> a_mp_date -> a_uat_date。系统将显示状态为“FOR APPROVAL MM”。但是应该将“IN PROCESS UAT”显示为状态而不是 FOR APPROVAL MM。

任何想法家伙如何做到这一点?

//Get values if the status is A

if (data.s == "A")
{
    if (data.a_mm_date >= data.a_mp_date && data.a_mm_date >= data.a_uat_date)
    {
        data.s = "For Approval MM";
    }

    if (data.a_mp_date >= data.a_mm_date && data.a_mp_date >= data.a_uat_date)
    {
       data.s = "For Approval MP";
    }

    if (data.a_uat_date >= data.a_mp_date && data.a_uat_date >= data.a_mm_date)
    {
       data.s = "In Process UAT";
    }
}

【问题讨论】:

  • 首先你的日期是什么类型的? DateTime?string,还有别的什么?

标签: c# asp.net-mvc date


【解决方案1】:

我发现你的问题很难理解,但我怀疑最简单的方法就是使用else

if (...)
{
    data.s = "For approval MM";
}
else if (...)
{
    data.s = "For approval MP";
}
else if (...)
{
    data.s = "For approval UAT";
}
else
{
    // Whatever you want if none of the above is met
}

然后我会将其提取到一个单独的方法中,这样您就无需重复 data 部分 16 次:

if (data.s == "A")
{
    data.s = ComputeNewApproval(data.a_mm_date, data.a_mp_date,
                                data.data.a_uat_date);
}

...

private static string ComputeNewApproval(DateTime mmDate, DateTime mpDate,
                                         DateTime uatDate)
{
    ...
}

(如果需要,请让他们DateTime?。)

然后我会将属性的名称更改为更常规的 -​​ 如果 s 意味着状态,那么将属性设置为 Status... 并最好去掉下划线,扩展 MM、MP和 UAT 变成更有意义的名称。 (我猜UAT是用户验收测试,但我不知道MM和MP是什么。)

【讨论】:

    【解决方案2】:

    最后一次if 测试:

    if (2013-04-15 >= null && 2013-04-15 >= 2013-04-15)...
    

    原来是true

    您可以在之前测试无效性。最后一个if的例子:

    if ((data.a_mp_date != null) && 
        (data.a_uat_date >= data.a_mp_date && data.a_uat_date >= data.a_mm_date))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 2019-10-03
      • 2020-06-16
      • 2016-02-23
      相关资源
      最近更新 更多