using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace 倒计时
{
class Program
{
static Timer timer = new Timer();
static DateTime endTime;
static string fileName = "countdown.txt";
static void Main(string[] args)
{
LoadCountdown();
timer.Interval = 1000;
timer.Elapsed += Timer_Elapsed;
timer.Enabled = true;
Console.WriteLine("倒计时开始,将在{0}结束。", endTime);
Console.ReadLine();
}
static void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
TimeSpan duration = endTime - DateTime.Now;
if (duration.TotalSeconds <= 0)
{
timer.Enabled = false;
Console.WriteLine("时间到了!");
SaveCountdown(DateTime.MinValue);
}
else
{
Console.WriteLine("剩余时间:{0}小时{1}分钟{2}秒", (int)duration.TotalHours, (int)duration.TotalMinutes % 60, (int)duration.TotalSeconds % 60);
SaveCountdown(endTime);
}
}
static void LoadCountdown()
{
if (File.Exists(fileName))
{
string content = File.ReadAllText(fileName);
if (!string.IsNullOrEmpty(content))
{
DateTime savedTime = DateTime.Parse(content);
TimeSpan duration = savedTime - DateTime.Now;
if (duration.TotalSeconds > 0)
{
endTime = savedTime;
return;
}
}
}
DateTime startTime = DateTime.Now;
endTime = startTime.AddMinutes(20);
}
static void SaveCountdown(DateTime time)
{
File.WriteAllText(fileName, time.ToString());
}
}
}