我在C#中有幾個DateTimePicker控件,我需要限制用戶只能從30分鐘的時間間隔(例如, 9:00 - > 9:30 - > 10:00 - > 10:30,依此類推。這可能嗎?限制時間DateTimePicker爲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;
}
這應該有效。您需要全局變量/ Property來存儲_prevDate。您在Form1()中或Form Load上設置_prevDate。
我們如何每次增加/刪除30分鐘。
On value更改您正在使用當前dataPicker值的事件,然後計算currentValue和prevValue之間的差異。如果值> 0添加,並且值< 0刪除。
如果您不知道如何更改DatePicker以顯示分鐘,則需要在設計器中添加此分鐘。 你需要這個代碼:
this.dateTimePicker2.CustomFormat = "dd/MM/yyyy hh:mm";
this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dateTimePicker2.ShowUpDown = true;
編輯: 我補充這將啓動DataPicker上00或30取決於如何接近30或00.你需要bool類型的另一全局變量這將給初值代碼dateTimePicker。看代碼。
試過了。它確實在一個半小時內上下跳動。它從目前的分鐘開始,所以現在(對我來說)從11:03跳到11:33到12:03。 – 2014-09-23 03:03:28
@GrantWinney可以從00或30開始,這不是問題。如果你問這 – mybirthname 2014-09-23 03:05:05
@GrantWinney在這裏我添加的代碼從00或30開始。 – mybirthname 2014-09-23 03:19:11
- 1. Kendo UI DateTimePicker - 從00:30到24:00顯示30分鐘的時間間隔
- 2. iphone中的分隔時間爲30分鐘間隔
- 3. LINQ體30分鐘間隔,以小時
- 4. 以30分鐘的時間間隔創建時間序列
- 5. 按30分鐘的時間間隔分組查詢
- 6. 時刻分裂日期爲30分鐘間隔
- 7. HighStocks固定Xaxis 30分鐘間隔
- 8. 如何在以30個分鐘間隔
- 9. 我想要顯示30分鐘的時間間隔/
- 10. 轉換數據幀到時間序列在30分鐘間隔
- 11. MySQL查詢選擇分鐘日期時間30天的間隔
- 12. 在列表視圖中間隔30分鐘後的時鐘時間
- 13. 增加30分鐘時間使其回去30分鐘
- 14. 我想按上午或下午30分鐘的時間間隔顯示時間。
- 15. 如何時30個分鐘計時間隔SWIFT 2.3
- 16. 兩個日期之間的所有日期,間隔30分鐘
- 17. 間隔5分鐘的時間爲15分鐘的時間間隔的平均數據
- 18. 組時間X分鐘,分裂在X分鐘間隔
- 19. 從班次時間扣除30分鐘
- 20. 休息時間到30分鐘塊
- 21. 2100小時+1分鐘作爲計時器。時間間隔
- 22. 如何從5分鐘彙總數據,到30分鐘,同時保持日期的時間間隔等數值
- 23. Teradata:將間隔時間(2)轉換爲分鐘時出錯
- 24. NSDate格式分隔時間和分鐘
- 25. 時間30分鐘或更少時間選擇行?
- 26. 如何將開放時間拆分爲30分鐘的塊?
- 27. 獲取30分鐘開始和結束時間之間的時間間隔的數據在MySQL
- 28. 限制發佈到每30分鐘
- 29. 從日期時間平均前5分鐘的時間間隔
- 30. jQuery時間間隔點擊限制
假設你的意思是WinForms,沒有內置的方法來做到這一點。你可能會考慮在普通的ComboBox中顯示時間,然後解析選定的值。 – 2014-09-23 02:58:46
@GrantWinney你可以像我展示它一樣。 – mybirthname 2014-09-23 03:01:17
請檢查我的實施。 – mybirthname 2014-09-23 03:18:44