检查过期日期是否无效 - 获取当前月份和年份没有“/”

时间:2011-12-15 15:15:55

标签: c# date compare

我有一个用户控件(ascx),在.ascx端有两个下拉菜单 - 一个月份,一个月份。这些是信用卡的到期日。我想做一些比较来比较到期日期和当前日期(以确保卡无效)。我知道如何比较事情,我只是想知道如何在没有斜线的情况下获得当前月份和年份: - )

3 个答案:

答案 0 :(得分:2)

你可以做这样的事情:

 int mon =DateTime.Now.Month();
 int yr=DateTime.Now.Year();
 string date = mon + "-" + yr;

并把你想要的东西放在中间。

答案 1 :(得分:0)

这是我用来检查信用卡的到期月份和年份是否在将来的一种方法。我敢肯定有更有效的方法可以做到这一点,但是它可以起作用:

public static bool IsValid(int month, int year)
    {
        var DateTimeNow = DateTime.Now;
        var MonthNow = DateTimeNow.Month;
        var YearNow = DateTimeNow.Year;

        if (year >= YearNow)
        {
            if (year > YearNow)
            {
                return true;
            }

            if (year == YearNow)
            {
                if (month >= MonthNow)
                {
                    return true;
                }
            }       
        }            

        return false;
    }

基本上,它会检查年份是当前年份还是将来年份,如果是,那么我们会检查年份是否是将来年份。如果是这样,则返回true。如果年份与当前年份相同,则我们检查该月份是否大于或等于当前月份。如果是,则返回true。如果不满足任何条件,则返回false。

像这样使用它:

 int cardMonth = 5;
 int cardYear = 2020;
 bool cardDateIsValid = IsValid(cardMonth, cardYear);

正如我所说,我敢肯定还有其他方法可以做到这一点,但这对我有用。

答案 2 :(得分:0)

还没过期?

public static bool IsValid(int month, int year)
{
    if (year > DateTime.Today.Year) // later than current year
        return true;

    if (year < DateTime.Today.Year) // earlier than current year
        return false;

    return month >= DateTime.Today.Month; // current year
}

过期了吗? (逆)

public static bool IsExpired(int month, int year)
{
    if (year > DateTime.Today.Year) // later than current year
        return false;

    if (year < DateTime.Today.Year) // earlier than current year
        return true;

    return month < DateTime.Today.Month; // current year
}