C# 将小时日期时间选择器限制为30分钟的间隔

C# 将小时日期时间选择器限制为30分钟的间隔,c#,datetimepicker,intervals,C#,Datetimepicker,Intervals,我在C#中有几个DateTimePicker控件,我需要限制用户仅从30分钟间隔中进行选择,例如9:00-->9:30-->10:00-->10:30等等。这可能吗 public Form1() { InitializeComponent(); if (dt.Minute % 30 > 15) { initialValue = true; dateTimePicker1.Val

我在C#中有几个DateTimePicker控件,我需要限制用户仅从30分钟间隔中进行选择,例如9:00-->9:30-->10:00-->10:30等等。这可能吗

    public Form1()
    {
        InitializeComponent();

        if (dt.Minute % 30 > 15)
        {
            initialValue = true;
            dateTimePicker1.Value = dt.AddMinutes(dt.Minute % 30);
        }
        else
        {
            initialValue = true;
            dateTimePicker1.Value = dt.AddMinutes(-(dt.Minute % 30));
        }

        _prevDate = dateTimePicker1.Value;

    }


    private DateTime _prevDate;
    private bool initialValue = false;

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
        if(initialValue)
        {
            initialValue = false;
            return;
        }

        DateTime dt = dateTimePicker1.Value;
        TimeSpan diff = dt - _prevDate;

        if (diff.Ticks < 0) 
            dateTimePicker1.Value = _prevDate.AddMinutes(-30);
        else 
            dateTimePicker1.Value = _prevDate.AddMinutes(30);

        _prevDate = dateTimePicker1.Value;
    }
编辑: 我添加的代码将在00或30启动数据采集器,具体取决于与30或00的距离。您需要另一个bool类型的全局变量,它将放置dateTimePicker的初始值。请参阅代码

编辑:
我添加的代码将在00或30启动数据采集器,具体取决于与30或00的距离。您需要另一个bool类型的全局变量,它将放置dateTimePicker的初始值。查看代码。

@Grantwiney您可以像我显示的那样执行。请检查我的实现。@Grantwiney您可以像我显示的那样执行。请检查我的实现。@Grantwiney可以从00或30开始执行。这不是问题。如果你问that@GrantWinney在这里我添加代码从00或30开始。太好了!!!就像一个符咒,@mybirthname!!谢谢!在第一个“if”大括号中,有一个错误。正确的行是:
dateTimePicker1.Value=dt.AddMinutes(30-dt.Minute%30)@GrantWinney可以从00或30开始这不是问题。如果你问that@GrantWinney在这里我添加代码从00或30开始。太好了!!!就像一个符咒,@mybirthname!!谢谢!在第一个“if”大括号中,有一个错误。正确的行是:
dateTimePicker1.Value=dt.AddMinutes(30-dt.Minute%30)
        this.dateTimePicker2.CustomFormat = "dd/MM/yyyy hh:mm";
        this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
        this.dateTimePicker2.ShowUpDown = true;