Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.07.2012, 10:49
dagi88 dagi88 вне форума
Прохожий
 
Регистрация: 01.07.2012
Сообщения: 5
Репутация: 10
По умолчанию Перевод системной даты

Здравствуйте всем. Меня интересует изменение системного времени на год, или на другое число, при этом чтоб все остальные числа(месяц, день, часы, минуты, секунды) оставались прежними. Нашел такое:
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var st:TSystemTime;
begin
st.wYear:=2007;
st.wMonth:=04;
st.wDay:=20;
st.wHour:=21
st.wMinute:=27;
st.wSecond:=20;
SetSystemTime(st);
end;

Но тут надо присваивать значение всем переменным, как сделать чтобы только год менялся?
Еще такое нашел, проблема та же
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
NewTD: TSYSTEMTIME;
a:Boolean;
begin
NewTD.wYear:=2005;
NewTD.wMonth:=12;
NewTD.wDay:=8;
NewTD.wDayOfWeek:=1;
NewTD.wHour:=16;
NewTD.wMinute:=23;
NewTD.wSecond:=12;
NewTD.wMilliseconds:=0;
a:=SetSystemTime(NewTD);
end;

Последний раз редактировалось dagi88, 01.07.2012 в 10:59.
Ответить с цитированием
  #2  
Старый 01.07.2012, 11:26
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

используя GetSystemTime
Ответить с цитированием
  #3  
Старый 01.07.2012, 11:37
dagi88 dagi88 вне форума
Прохожий
 
Регистрация: 01.07.2012
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Pyro
используя GetSystemTime
а можно подробнее, где и как ее использовать на примере одного из кода сверху
Ответить с цитированием
  #4  
Старый 01.07.2012, 11:44
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
По умолчанию

попробуй это:

Код:
procedure SetDateTime(Year : word; Month, Day : byte; Hour, Min, Sec, MSec : byte);
var
  ATime: TSystemTime;
begin
  with ATime do
  begin
    wYear := Year;
    wMonth := Month;
    wDay := Day;
    wHour := Hour;
    wMinute := Min;
    wSecond := Sec;
    wMilliseconds := MSec;
  end;
  SetLocalTime(ATime);
end;
__________________
уволен в запас!!!

Последний раз редактировалось RusMaXXX, 01.07.2012 в 11:58.
Ответить с цитированием
  #5  
Старый 01.07.2012, 11:54
dagi88 dagi88 вне форума
Прохожий
 
Регистрация: 01.07.2012
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от RusMaXXX
попробуй это:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  ATime: TSystemTime;
begin
  with ATime do
  begin
    wYear := 1980;
    wMonth := 7;
    wDay := 12;
    wHour := 17;
    wMinute := 25;
    wSecond := 0;
    wMilliseconds := 0;
  end;
  SetLocalTime(ATime);
end;
этот код меняет все значения, а мне нужно чтобы менялся только год
Ответить с цитированием
  #6  
Старый 01.07.2012, 11:59
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
По умолчанию

так сперва получи все значения, час, минуты, секунды, год, месяц, число, а потом к к году прибавь/отними значение и эти данные примени в процедуре
__________________
уволен в запас!!!
Ответить с цитированием
  #7  
Старый 01.07.2012, 12:04
dagi88 dagi88 вне форума
Прохожий
 
Регистрация: 01.07.2012
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от RusMaXXX
так сперва получи все значения, час, минуты, секунды, год, месяц, число, а потом к к году прибавь/отними значение и эти данные примени в процедуре
а как все это выглядит в виде кода, если не сложно напишите
Ответить с цитированием
  #8  
Старый 01.07.2012, 12:05
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
По умолчанию

Цитата:
Сообщение от dagi88
а как все это выглядит в виде кода, если не сложно напишите

вот

Код:
procedure SetDateTime(Year : word; Month, Day : byte; Hour, Min, Sec, MSec : byte);
var
  ATime: TSystemTime;
begin
  with ATime do
  begin
    wYear := Year;
    wMonth := Month;
    wDay := Day;
    wHour := Hour;
    wMinute := Min;
    wSecond := Sec;
    wMilliseconds := MSec;
  end;
  SetLocalTime(ATime);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ATime: TSystemTime;
begin
  GetLocalTime(ATime);
  SetDateTime(ATime.wYear+1,ATime.wMonth, ATime.wDay, ATime.wHour, ATime.wMinute, ATime.wSecond, ATime.wMilliseconds);         
end;
__________________
уволен в запас!!!
Ответить с цитированием
Этот пользователь сказал Спасибо RusMaXXX за это полезное сообщение:
dagi88 (01.07.2012)
  #9  
Старый 01.07.2012, 12:13
dagi88 dagi88 вне форума
Прохожий
 
Регистрация: 01.07.2012
Сообщения: 5
Репутация: 10
По умолчанию

все получилось, большое спасибо
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025