Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 02:15   #11
Sirk0
 
Регистрация: 16.05.2009
Сообщений: 6
Вопрос

Спасибо тебе DeKot за проделаную работу.
Но вот смотри, у тебя получается Таймер не нужен вообще.
Код:
  Data_DayNow:= 39951.0;
  Data_DayStart:= 40360.0;
  Label1.Caption:= ('До начала FIFA 2010 = '
                     + FloatToStr(Data_DayStart - Data_DayNow)+ ' дней ');
И получается, что завтра, послезавтра эта програмка уже работать будет не правильно...
сдесь ещё надо доделать, чтобы каждые 24 часа день ещё отнимался (ну это вполне реализуемо)
Мне ещё нужно добавить к Data_DayStart: +365+366, так как чемпионат 2012. а он точно начнётся 01.07 (в гугле не нашёл )

Задумка хорошая, может и пойду этим путём.

ну а насчёт времени там надо будет как-то отдельно часы минуты и секунды, но это я уже литературу подчитаю...

что у меня есть на даный момент:
юзал таймер, читал, крутил и как-то получилось. Теперь у меня на 2 Labelа выводится Дата и время, которые обновляются вместе с системным временем

И собственно вопрос:" Можно ли мне самому задать время, а потом закинуть его в time?
тоесть
Код:
label3.caption:=datetostr(strtodate(01.07.2012));
моя запись неправильная

скорее всего даже так
Код:
Label3.caption:=strtodate(datetostr(01.02.2012));
но тогда уже incompatible types 'string' and 'Tdatetime'
как их тут подружить?

Последний раз редактировалось Sirk0; 19.05.2009 в 02:21. Причина: редактирование
Sirk0 вне форума Ответить с цитированием
Старый 19.05.2009, 13:17   #12
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Кидаем на форму компонент DateTimerPicker (Win32).Будет в окне текущая дата (если не нужно показывать, то Visible:= false).Значение начала чемпионата расчитываем, как было указано выше (число 40 360 соответствует 01.07.2010 г.Правильную дату начала я тоже не знаю и далее код (уже будет отсчитывать автоматически от текущей даты)
Код:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    DateTimePicker1: TDateTimePicker;
    procedure FormActivate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  DayStart: TDateTime;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
  DayStart:= 40360.0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption:= 'До начала ЧМ FIFA 2010 осталось    ' +
                    FloatToStr(DayStart - Date) + '    дней';
end;

end.
Добавлю - Date - свойство DateTimerPicker - содержит текущее значение даты по системному времени компа в формате Float. Результ проги
И не сомневайся даже ... отдых - кайф, работа - лажа!

Последний раз редактировалось Stilet; 21.05.2009 в 11:17.
DeKot вне форума Ответить с цитированием
Старый 20.05.2009, 21:25   #13
Sirk0
 
Регистрация: 16.05.2009
Сообщений: 6
Стрелка

Делал так как вы написали. Всё получилось
Но там ведь ещё надо время...

Вообще идей было много. Но более всего понравилась вот это:

Пример кода : Нахождение разности дней между двумя значениями date+time.
Код:
var
  fromdate, toDate : TDateTime;

begin
  // Установка наших переменных дат
  fromDate := EncodeDateTime(2000, 02, 26, 10, 0, 0, 0);
  toDate   := EncodeDateTime(2000, 02, 29,  9, 0, 0, 0);

  // Отображение этих дат и дней между ними
  ShowMessage('С даты = '+DateTimeToStr(fromDate));
  ShowMessage('До даты = '+DateTimeToStr(toDate));
  ShowMessage('Целых дней = '+
              IntToStr(DaysBetween(toDate, fromDate))+' дней');
end;
С даты = 26/02/2000 10:00:00
До даты = 29/02/2000 09:00:00
Целых дней = 2 дней

Вот только вместо "С даты" поставить (NOW).

Всё как бы хорошо, но на EncodeDateTime выбивает ошибку Undeclared Identifer.
Приходиться брать отдельно дату и время.
И такая же ошибка выбивается на DaysBetween. ПОЧЕМУ???

а это моя идея относительно времени
Код:
Label3.Caption:= 'До начала чемпионата FIFA 2012 осталось    ' +
                    FloatToStr(86400-(time*86400)) + '    секунд';
Вот только не знаю на что надо домножать, чтобы были часы и минуты


Проблема с DaysBetween была из-за не прописаного в uses параметра DateUtils.

вопрос о времени всё ещё актуальный.

В результате такой код

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   EVROtime:= EncodeTime(23, 59, 59, 999);
   EVROdate:= EncodeDate(2012, 06, 30);

   Label1.Caption:=('Целых дней = '+ IntToStr( DaysBetween(date, EVROdate))+' дней');
   Label2.Caption:=('Время=' + IntToStr( TimeBetween (time , Evrotime));
end;
Время не работает =(

Последний раз редактировалось Stilet; 21.05.2009 в 11:17.
Sirk0 вне форума Ответить с цитированием
Старый 21.05.2009, 01:03   #14
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Зачем все усложнять.Достаточно стандартных компонентов - DateTimerPicker,Edit, и пять Label.Вот код, думаю, комментарии не нужны
Код:
var
  Form1: TForm1;
  DayStart: TDateTime;
  S_Hour,S_Min,S_Sec: string;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
  DayStart:= 40360.0; //  01.07.2010 г.
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Edit1.Text:= TimeToStr(Now); // текущее время  [час : мин : сек]
  Edit1.SelStart:= 0;
  Edit1.SelLength:= 2;
  S_Hour:= Edit1.SelText; //  выделяем  часы в  виде string из Edit1.Text
  Edit1.SelStart:= 3;
  Edit1.SelLength:= 2;
  S_Min:= Edit1.SelText; //  выделяем  мин. в  виде string из Edit1.Text
  Edit1.SelStart:= 6;
  Edit1.SelLength:= 2;
  S_Sec:= Edit1.SelText; //  выделяем  сек. в  виде string из Edit1.Text

  Label1.Caption:= 'До начала   FIFA 2010  осталось :';
  Label2.Caption:= FloatToStr(DayStart - Date) + '   дней';
  Label3.Caption:= IntToStr(23 - StrToInt(S_Hour)) + '    часов';
  Label4.Caption:= IntToStr(59 - StrToInt(S_Min)) + '    минут';
  Label5.Caption:= IntToStr(59 - StrToInt(S_Sec)) + '    секунд';
end;

end.
Вот результат



Ес-но уже сам дизайн окна можно подработать красивше.Я и так выдал всю основную идею.Дальше сами постарайтесь оформить.(Да, дату начала ЧМ - 01.07.2010 я взял от балды. Вставте правильную).
И не сомневайся даже ... отдых - кайф, работа - лажа!

Последний раз редактировалось Stilet; 21.05.2009 в 11:17.
DeKot вне форума Ответить с цитированием
Старый 21.05.2009, 11:19   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Господа, если есть возможность - не делайте подряд свои посты, если ваш пост последний подредактируйте его коли добавить чего-то надо. Это не красиво.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2009, 13:45   #16
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Обязательно учту замечание.Просто в этой теме посты получились объемными, вот и решил разделить их на два.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 23.05.2009, 22:44   #17
Sirk0
 
Регистрация: 16.05.2009
Сообщений: 6
Хорошо Спасибо!

Спасибо тебе DeKot, низкий тебе поклон!!!
и как говорится Респект и Уважуха =)))


Ну нашёл я дату начала проведения ЕВРО-2012, а слева на сайте очень интересный ява-скрипт, посмотрите
Код HTML:
http://euro2012.kmv.gov.ua/news.asp?IdType=25&Id=202626

Последний раз редактировалось Sirk0; 24.05.2009 в 00:10. Причина: Нашёл дату
Sirk0 вне форума Ответить с цитированием
Старый 13.08.2009, 18:05   #18
свр
Пользователь
 
Аватар для свр
 
Регистрация: 11.08.2009
Сообщений: 22
По умолчанию

Как представить системное время в четырех числах (часы, минуты, секунды, доли секунд)?
свр вне форума Ответить с цитированием
Старый 13.08.2009, 18:13   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
Caption:=FormatDateTime('h:n:s:z',Now);
подробнее читаем хелп.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.08.2009, 18:27   #20
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
'h:n:s:z'
а может все таки ('hh:mm:ss:zz')
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текущее время Aндрей Помощь студентам 1 08.05.2009 14:01
Системное время Demien Общие вопросы Delphi 7 09.04.2009 12:36
Как сделать так, чтобы в TLabel отображались текущее системное время? Bill Gates Общие вопросы Delphi 3 03.01.2008 01:12
Системное время Terran Общие вопросы Delphi 5 02.01.2008 20:12
Текущее время Greyglass Microsoft Office Excel 4 22.11.2007 13:25