比较DateTimePicker的时间 [英] Compare Time from DateTimePicker

查看:63
本文介绍了比较DateTimePicker的时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿伙计们,

我想减去时间; dateTimePicker中的实际时间和时间。

然后我要比较。



这是我的实际代码:



 TimeSpan零=新TimeSpan(0,0,0,0,0); 

private void ti_timeLeft_Tick(object sender,EventArgs e)
{
try
{
TimeSpan notification1 = new TimeSpan(0,0,2,0) ,0);
TimeSpan notification2 = new TimeSpan(0,0,5,0,0);
TimeSpan notification3 = new TimeSpan(0,0,10,0,0);
}
catch(Exception ex){}

DateTime now = DateTime.Now;
列表< TimeSpan> diffs = new List< TimeSpan>(7);

#regionMonday

if(DateTime.Now.DayOfWeek.ToString()==Monday)
{
if(dtp_monday1.Checked)
{
if((dtp_monday1.Value - now)> zero)
diffs.Add(dtp_monday1.Value - now);
}

if(dtp_monday2.Checked)
{
if((dtp_monday2.Value - now)> zero)
diffs.Add(dtp_monday2 .Value - now);
}
if(dtp_monday3.Checked)
{
if((dtp_monday3.Value - now)> zero)
diffs.Add(dtp_monday3.Value - now );
}
if(dtp_monday4.Checked)
{
if((dtp_monday4.Value - now)> zero)
diffs.Add(dtp_monday4.Value - now );
}
if(dtp_monday5.Checked)
{
if((dtp_monday5.Value - now)> zero)
diffs.Add(dtp_monday5.Value - now );
}
if(dtp_monday6.Checked)
{
if((dtp_monday6.Value - now)> zero)
diffs.Add(dtp_monday6.Value - now );
}
if(dtp_monday7.Checked)
{
if((dtp_monday7.Value - now)> zero)
diffs.Add(dtp_monday7.Value - now );
}

if(diffs.Count == 0)
{
//this.lab_time_left.Text =;
返回;
}

diffs.Sort();
TimeSpan min = diffs [0];
TimeSpan max = diffs [diffs.Count - 1];

this.lab_time_left.Text =剩余时间:+ min.Hours.ToString(00)+:+ min.Minutes.ToString(00)+:+ min.Seconds.ToString( 00);
}
}





我怎么能只做几次:

if((dtp_monday1.Value - now)> zero)



????



请帮帮我

解决方案

你可以使用例如 DateTime.CompareTo方法 [ ^ ]比较日期的方法。例如:

 ... 
if (dtp_monday1.Value.CompareTo(now) > 0 ){
...


尝试下面的代码:

  if ((dtp_monday1.Value  - 现在).TotalDays >   0 
{
// 您的逻辑
}



这里我用过TotalDays获得两个日期之间的总天数差异。如果您需要小时,分钟和秒,则使用TotalHours,TotalMinutes,TotalSeconds。


Hey guys,
i want to subtract to times; the actual time and a time in a dateTimePicker.
then i want to compare.

this is my actual code:

TimeSpan zero = new TimeSpan(0, 0, 0, 0, 0);

private void ti_timeLeft_Tick(object sender, EventArgs e)
{
            try
            {
                TimeSpan notification1 = new TimeSpan(0, 0, 2, 0, 0);
                TimeSpan notification2 = new TimeSpan(0, 0, 5, 0, 0);
                TimeSpan notification3 = new TimeSpan(0, 0, 10, 0, 0);
            }
            catch (Exception ex) { }

            DateTime now = DateTime.Now;
            List<TimeSpan> diffs = new List<TimeSpan>(7);

            #region "Monday"

            if (DateTime.Now.DayOfWeek.ToString() == "Monday")
            {
                if (dtp_monday1.Checked)
                {
                    if ((dtp_monday1.Value - now) > zero)
                        diffs.Add(dtp_monday1.Value - now);
                }
                if (dtp_monday2.Checked)
                {
                    if ((dtp_monday2.Value - now) > zero)
                        diffs.Add(dtp_monday2.Value - now);
                }
                if (dtp_monday3.Checked)
                {
                    if ((dtp_monday3.Value - now) > zero)
                        diffs.Add(dtp_monday3.Value - now);
                }
                if (dtp_monday4.Checked)
                {
                    if ((dtp_monday4.Value - now) > zero)
                        diffs.Add(dtp_monday4.Value - now);
                }
                if (dtp_monday5.Checked)
                {
                    if ((dtp_monday5.Value - now) > zero)
                        diffs.Add(dtp_monday5.Value - now);
                }
                if (dtp_monday6.Checked)
                {
                    if ((dtp_monday6.Value - now) > zero)
                        diffs.Add(dtp_monday6.Value - now);
                }
                if (dtp_monday7.Checked)
                {
                    if ((dtp_monday7.Value - now) > zero)
                        diffs.Add(dtp_monday7.Value - now);
                }

                if (diffs.Count == 0)
                {
                    //this.lab_time_left.Text = "";
                    return;
                }

                diffs.Sort();
                TimeSpan min = diffs[0];
                TimeSpan max = diffs[diffs.Count - 1];

                this.lab_time_left.Text = "Time left: " + min.Hours.ToString("00") + ":" + min.Minutes.ToString("00") + ":" + min.Seconds.ToString("00");
            }
}



how can i do this just with times:
if ((dtp_monday1.Value - now) > zero)

????

please help me

解决方案

You can use for example DateTime.CompareTo Method[^] method to compare the dates. For example:

...
if (dtp_monday1.Value.CompareTo(now) > 0) {
...


Try with below code:

if((dtp_monday1.Value - now).TotalDays > 0)
{
	// Your logic
}


Here I used TotalDays to get total no of days difference between two dates. If you need for hours, minutes and seconds then use TotalHours, TotalMinutes, TotalSeconds.


这篇关于比较DateTimePicker的时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆