示例#1
0
 static void Main(string[] args)
 {
     TimeNTon ins  = TimeNTon.instance();
     TimeNTon ins1 = TimeNTon.instance();
     TimeNTon ins2 = TimeNTon.instance();
     TimeNTon ins3 = TimeNTon.instance();
     TimeNTon ins4 = TimeNTon.instance();
     TimeNTon ins5 = TimeNTon.instance();
     TimeNTon ins6 = TimeNTon.instance();
     TimeNTon ins7 = TimeNTon.instance();
 }
示例#2
0
        static public TimeNTon instance()
        {
            //gdy wywołujemy po raz pierwszy
            if (istniejace == null)
            {
                istniejace    = new TimeNTon[N];
                istniejace[0] = new TimeNTon();

                times = new TimeSpan[] {
                    new TimeSpan(0, 8, 15, 0, 0),
                    new TimeSpan(0, 10, 0, 0, 0),
                };
            }
            //zliczamy wywołania instance()
            licznik++;

            //liczymy i porównujemy czas
            TimeSpan t = DateTime.Now.TimeOfDay;

            int po    = TimeSpan.Compare(t, times[0]);
            int przed = TimeSpan.Compare(t, times[1]);

            Console.WriteLine("Aktualny czas to {0}", t);

            //gdy po za ustalonymi godzinami
            if (!(po >= 0 && przed <= 0))
            {
                return(istniejace[0]);
            }

            //gdy w czasie ustalonych godzin
            for (int i = 0; i < N; i++)
            {
                if (istniejace[i] == null)
                {
                    istniejace[i] = new TimeNTon();

                    return(istniejace[i]);
                }
            }
            //gdy tablica jest zajęta
            Console.WriteLine("zwracam obiekt nr {0}", (licznik % N));
            return(istniejace[licznik % N]);
        }