期限までの残り日数に基づいてアラートボックスにメッセージを表示したいのですが、残り1日であればアラートボックスが出てきて「更新日まであと1日です!」と表示されます。次のコードを使用します
if ((RenewalDate.Value - DateTime.Now).TotalDays == 5)
MessageBox.Show("Your deadline is within 5 days");
else if ((RenewalDate.Value - DateTime.Now).TotalDays == 4)
MessageBox.Show("Your deadline is 4 days left");
else if ((RenewalDate.Value - DateTime.Now).TotalDays == 3)
MessageBox.Show("Your deadline is 3 days left");
else if ((RenewalDate.Value - DateTime.Now).TotalDays == 2)
MessageBox.Show("Your deadline is 2 days left");
else if ((RenewalDate.Value - DateTime.Now).TotalDays == 1)
MessageBox.Show("Your deadline is 1 days left");
しかし、うまくいきません。理由がわかりません。何か案は?前もって感謝します。次のように私のコード:
private int _OrganisationID = 1;
private DateTime? _RenewalDate;
public event PropertyChangedEventHandler PropertyChanged;
[Required(ErrorMessage = "OrganisationID is required.")]
public int OrganisationID
{
get { return _OrganisationID; }
set
{
if (_OrganisationID == value)
return;
_OrganisationID = value;
PropertyChanged(this, new PropertyChangedEventArgs("OrganisationID"));
}
}
[Required(ErrorMessage = "RenewalDate is a required field.")]
public DateTime? RenewalDate
{
get { return _RenewalDate; }
set
{
_RenewalDate = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("RenewalDate"));
}
}
}
DispatcherTimer timer = new DispatcherTimer();
// DateTime myDeadLine = new DateTime();
public void InitTimer()
{
// Checks every minute
timer.Interval = new TimeSpan(0, 1, 0);
timer.Tick += timer_Tick;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
//if (( RenewalDate.Value - DateTime.Now).TotalDays <= 1)
// MessageBox.Show("Your Alert Message");
}
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
if (ClientDeadLines.IsSelected)
{
using (var context = new ProActiveDBEntities())
{
var org = context.Organisations.Where(o => o.OrganisationID == this.OrganisationID).FirstOrDefault();
if (org != null)
{
RenewalDate = org.RenewalDate;
if ((RenewalDate.Value - DateTime.Now).TotalDays <= 2)
MessageBox.Show("Your Alert Message");
}
else
{
MessageBox.Show("Unable to retrieve data, please set up organsiation first.");
}
}
}
}
}