как получить счет в обратном порядке? - PullRequest
0 голосов
/ 02 марта 2012

Как получить счет в обратном порядке?Прямо сейчас я показал количество выполненных подсчетов. Но я также хочу, чтобы количество отсчетов осталось.И как мне сбросить таймер в конце каждого дня в приведенной ниже программе и отобразить последний раз, когда он был выполнен?Может ли кто-нибудь помочь мне со всей программой?Программа -

namespace Time_Writer
{
  class Program
  {
    static int count = 1;
    static double seconds;
    private static System.Timers.Timer aTimer;


    static void Main(string[] args)
    {
        ReadCountFromFile();


        aTimer = new System.Timers.Timer();
        aTimer.Elapsed +=new System.Timers.ElapsedEventHandler(aTimer_Elapsed);
        aTimer.Interval = 5000;
        aTimer.Enabled = true;
        Console.WriteLine("Press Enter To Exit The Program\n");
        Console.ReadLine();


        AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);


    }
    private static void ReadCountFromFile()
    {
        try
        {
            if (File.Exists(".\\mynumber.dat"))
            {
                using (var file = File.Open(".\\mynumber.dat", FileMode.Open))
                {
                    byte[] bytes = new byte[4];
                    file.Read(bytes, 0, 4);
                    count = BitConverter.ToInt32(bytes, 0);
                    Console.WriteLine("Limit = 10000");
                    Console.WriteLine("Count  = {0}", count);

                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Problem reading file.");
        }
    }
    static void CurrentDomain_ProcessExit(Object sender, EventArgs e)
    {
        using (var file = File.Open(".\\mynumber.dat", FileMode.OpenOrCreate))
        {
            var buffer = BitConverter.GetBytes(count);
            file.Write(buffer, 0, buffer.Length);
        }
    }
    private static void aTimer_Elapsed(object source, ElapsedEventArgs e)
    {
        Console.WriteLine("Name is Yap {0}", e.SignalTime);
        seconds += 5;
        count += 1;
        if (count>10000 || seconds==86400)
        {
            aTimer.Enabled = false;
            Console.WriteLine("\n\nTimer is off at {0}\n\n", e.SignalTime.TimeOfDay.ToString());
        }
     }
   }
 }

1 Ответ

0 голосов
/ 02 марта 2012

Вы имеете в виду что-то подобное?

Console.WriteLine("Limit = 10000");
Console.WriteLine("Count: {0} of 10000. {1} remaining", count, 10000 - count);
...