如何将文本值转换为24小时日期时间对象c#

时间:2017-02-04 19:11:15

标签: c# wpf datetime

我的WPF应用程序中有一个文本框,其中我以24小时格式获得时间。我想要的是,如果我的文本框的时间小于当前时间,那么 IF条件应该是真的,但它不起作用......

e.g:

txtdeparturetime.Text = 00:10

time == 00:31// time==>(object) here current time

if(txtdeparturetime.Text < time) // than this should work

以下是我的代码。

DateTime time = new DateTime();

DateTime deptime = DateTime.Parse(txtdeparturetime.Text);//converting textbox value into date object

if ((TimeSpan.Compare(deptime.TimeOfDay, time.TimeOfDay)) == -1)
{
    //some code here          
}

2 个答案:

答案 0 :(得分:1)

您希望与DateTime.Now而不是new DateTime()进行比较,并且可以使用简单的<比较运算符。

DateTime now = DateTime.Now;    
DateTime deptime = DateTime.Parse(txtdeparturetime.Text);

if (deptime.TimeOfDay < now.TimeOfDay)
{
     //some code here          
}

这是一个工作示例,文本由常量而不是文本字段设置。

 public static void test1()
 {
    DateTime now = DateTime.Now;
    string timetext = "2017-02-04 12:16PM";
    DateTime deptime = DateTime.Parse(timetext);
    Console.WriteLine("text time="+timetext);
    if (deptime.TimeOfDay < now.TimeOfDay)
    {
        Console.WriteLine("time is less than now");
    }
    Console.WriteLine("End");
    Console.ReadLine();
}

enter image description here

答案 1 :(得分:1)

你的代码中有一些错误......

    private void button1_Click(object sender, EventArgs e)
    {
        DateTime t1 = DateTime.Now;
        DateTime t2 = Convert.ToDateTime(textBox1.Text);
        int i = DateTime.Compare(t1, t2);

        if (i < 1)
        {

        }

    }

现在,如果 t1 小于 t2 ,变量 i 将小于零

如果t1等于t2,则结果为

最后,如果 t1 大于 t2 ,结果将大于