![](/img/trans.png)
[英]DateTime Conversion and Parsing DateTime.Now.ToString(“MM/dd/yyyy hh:mm:ss.fff”)
[英]C# if DateTime.Now.ToString(“HH:mm”) is equals to
我編寫了一個腳本,檢查當前時間是否等於字符串,代碼為:
string ore = Properties.Settings.Default.oreChiusura;
string minuti = Properties.Settings.Default.minutiChiusura;
var t1 = DateTime.Now.ToString("HH:mm");
var t2 = ore + ":" + minuti;
if(t1 == t2)
{
//Stuff
}
問題是,如果“ minuti”像01 .... 09那樣不起作用,則僅當數字不以0開頭時才起作用。我在做什么錯了?
您的示例很好地說明了以下原則:如果可以使用整數進行比較,則不應該對字符串進行比較:
var adesso = DateTime.Now;
var oreAdesso = adesso.Hour;
var minutiAdesso = adesso.Minute;
if (oreAdesso == ore && minutiAdesso == minuti) {
...
}
使用此代碼:
string ore = Properties.Settings.Default.oreChiusura;
string minuti = Properties.Settings.Default.minutiChiusura;
var t1 = DateTime.Now.ToString("HH:mm");
var t2 = ore.PadLeft(2, '0') + ":" + minuti.PadLeft(2, '0');
if(t1 == t2)
{
//Stuff
}
但! 強烈建議更改代碼以使用TimeSpan
設置代替oreChiusura
和minutiChiusura
設置,然后比較TimeSpan
值而不是字符串。
例如:
var t1 = DateTime.Now.TimeOfDay;
var t2 = Properties.Settings.Default.Chiusura;
if(t1 == t2)
{
//Stuff
}
您可以通過將ore
和minuti
為int,然后比較這些值來實現。
int ore = Convert.ToInt32(Properties.Settings.Default.oreChiusura);
int minuti = Convert.ToInt32(Properties.Settings.Default.minutiChiusura);
DateTime t1 = DateTime.Now;
if(t1.Hour == ore && t1.Minute == minuti)
{
//Stuff
}
此代碼比較小時和分鍾的真實值,而不是它們的字符串值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.