none
Искуственное время! RRS feed

  • Вопрос

  • Как с помощью таймера сделать искуственное время. Мне нужно чтобы время отображалось в label1. Время в формате 22:47 06.02.2010. И что бы одна секунда была равна 12 часам. Ну естественно когда проходят сутки меняется дата дня, а когда 29, 30, 31 день, то меняется месяц(количество дней в месяце тоже должно присуцтвовать). Ну и естественно прошло 12 месяцов и поменялся год, а когда дата достигнит 12:00 01.01.2011, то вылетало любое текстовое сообщение! Зарание спосибо! :)
    • Перемещено Siddharth Chavan 1 октября 2010 г. 22:55 MSDN Forums Consolidation (От:Visual C#)
    6 февраля 2010 г. 20:51

Ответы

  • попробуйте:)

    public partial class Form1 : Form
    {
        DateTime myDateTime;
        DateTime deadLine;
        System.Windows.Forms.Timer myTimer;
        public Form1()
        {
            InitializeComponent();
            deadLine = new DateTime(2011, 1, 1, 12, 0, 0);//12:00 01.01.2011
            myDateTime = DateTime.Now;
            label1.Text = myDateTime.ToString("HH:mm dd:MM:yy");
            myTimer = new System.Windows.Forms.Timer();
            myTimer.Interval = 1000;//1с
            myTimer.Tick += new EventHandler(myTimer_Tick);
            myTimer.Start();
        }
    
        void myTimer_Tick(object sender, EventArgs e)
        {
            myDateTime = myDateTime.AddHours(12);//+12ч
            label1.Text = myDateTime.ToString("HH:mm dd:MM:yy");
            if (myDateTime.CompareTo(deadLine) > 0)
            {
                myTimer.Stop();
                MessageBox.Show("время");
            }
        }
    }
    

    7 февраля 2010 г. 6:05
  • >Да! Когда я ставлю 12 проходит 24. Надо ставить в два раза меньше
    Странно, у вас точно такой же код?

    >А и можеш поподробний обяснить почему именно так нужно записывать время: (2011, 1, 1, 12, 0, 0)
    Стандартный конструктор для DateTime, есть и другие - http://msdn.microsoft.com/en-us/library/system.datetime.datetime.aspx
    [Мой блог], [LinkedIn]
    7 февраля 2010 г. 15:58
  • замените эту строку на инициализацию того, что вам нужно:
    myDateTime = DateTime.Now;

    Наподобии того, как сделано тут
    eadLine = new DateTime(2011, 1, 1, 12, 0, 0);//12:00 01.01.2011


    [Мой блог], [LinkedIn]
    7 февраля 2010 г. 15:25
  • Я понял в чём проблемма. Я просто создал таймер переташив его с ToolBox-а и создал при двойном клике myTimer_Tick, и в коде было тоже самое. Нужно просто удалить было:
    myTimer.Interval = 1000;//1с        
    myTimer.Tick += new EventHandler(myTimer_Tick);
    7 февраля 2010 г. 16:31

Все ответы