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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.07.2007, 00:09
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию Как узнать нынешний год?

Как узнать нынешний год? месяц? день недели?

Спасибо....
Ответить с цитированием
  #2  
Старый 28.07.2007, 01:07
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Код:
function GetCurrentDateTime: TDateTime;

var
  SystemTime: TSystemTime;
begin

  GetLocalTime(SystemTime);
  Result := SystemTimeToDateTime(SystemTime);
end;

А дальше уже сам разберешься
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #3  
Старый 28.07.2007, 09:20
Аватар для Sharky
Sharky Sharky вне форума
Активный
 
Регистрация: 20.03.2007
Сообщения: 202
Репутация: 10
По умолчанию

А есть и по короче :
Компонент стандарный DateUtils
Функция DayOfTheYear -Выдает день года для значения TDateTime (ISO 8601)

Функция -DayOfTheMonth -Дает день месяца для значения TDateTime (ISO 8601)
и т д
Ответить с цитированием
  #4  
Старый 28.07.2007, 11:31
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

ты уверен что он стандартный? и как мне вытащить год? спс...
Ответить с цитированием
  #5  
Старый 28.07.2007, 12:02
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

Сделай пример кода.... плиззз
Ответить с цитированием
  #6  
Старый 28.07.2007, 14:35
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Код:
function RetDate(inDate: TDateTime; inType: integer): integer;
var
xYear, xMonth, xDay: word;
begin
Result := 0;
DecodeDate(inDate, xYear, xMonth, xDay);
case inType of
   1: Result := xYear;  // год
   2: Result := xMonth; // месяц
   3: Result := xDay;   // день
   4: if xMonth < 4 then
        Result := 1
      else // квартал
      if xMonth < 7 then
        Result := 2
      else
      if xMonth < 10 then
        Result := 3
      else
        Result := 4;
end;
end; 

__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #7  
Старый 28.07.2007, 15:36
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

немного не понял. Почему 4,7,10???
Ответить с цитированием
  #8  
Старый 28.07.2007, 17:05
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

Я весь день парюсь... НИЧЕГО НЕ ПОЛУЧАЕТСЯ....
кто нибуть П О Ж А Л У Й С Т О разложите мне по полочкам как определить:
1: год
2: месяц
3: число
4: День недели

ПЛИЗЗЗЗЗЗЗЗЗЗЗЗЗ....................
выслушаю всех!
Ответить с цитированием
  #9  
Старый 28.07.2007, 17:56
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Код:
var
  inDate: TDateTime;
  xYear, xMonth, xDay: Integer;
  SystemTime: TSystemTime;
begin

  GetLocalTime(SystemTime);
  inDate := SystemTimeToDateTime(SystemTime);
  DecodeDate(inDate, xYear, xMonth, xDay);

  // в xYear - год
  // в xMonth - месяц
  // в xDay - день

end;
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #10  
Старый 28.07.2007, 20:31
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

ошибку выдайот! и показывает на эту строчку =>

DecodeDate(inDate, xYear, xMonth, xDay);

Последний раз редактировалось killerkill, 28.07.2007 в 20:35.
Ответить с цитированием
  #11  
Старый 28.07.2007, 22:44
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

всё ОК! А ты знаеш как определить сколько дней в месяце?
Ответить с цитированием
  #12  
Старый 28.07.2007, 23:24
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Да, идешь case'ом по переменной xMonth,
то есть, если месяц первый, то дней столько-то, если второй, то столько-то и т.д., ты ведь знаешь сколько дней в месяцах, вот и все.

Ну а можно, как в одном из примеров:



Автор: Ревенко Алексей
Код:
// Колическтво дней в любом месяце любого
// года можно получить с помощью EndOfAMonth
var
  YYYY, MM, DD: Word;
  D: TDateTime;
begin
  DecodeDate(Date, YYYY, MM, DD);
  D := EndOfAMonth(YYYY, {Номер месяца});
  DecodeDate(D, YYYY, MM, DD); // DD - номер последнего дня в месяце
end;

©Drkb::00732
http://delphiworld.narod.ru/
DelphiWorld 6.0

--------------------------------------------------------------------------
Получить число дней в месяце

Код:
function DaysOfMonth(mm, yy: Integer): Integer; 
begin 
if mm = 2 then 
begin 
   Result := 28; 
   if IsLeapYear(yy) then Result := 29; 
end 
else 
begin 
   if mm < 8 then 
   begin 
     if (mm mod 2) = 0 then 
       Result := 30 
     else 
       Result := 31; 
   end 
   else 
   begin 
     if (mm mod 2) = 0 then 
       Result := 31 
     else 
       Result := 30; 
   end; 
end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  days: Integer; 
begin 
  days := DaysOfMonth(7, 2001); 
  ShowMessage('July 2001 has ' + IntToStr(days) + ' days'); 
end; 

©Drkb::00735
http://delphiworld.narod.ru/
DelphiWorld 6.0

--------------------------------------------------------------------------
Код:
function LastDayOfCurrentMonth: TDate;
var
  y, m, d: Word;
begin
  DecodeDate(now, y, m, d);
  m := m + 1;
  if m  12 then
  begin
    y := y + 1;
    m := 1;
  end;
  Result := EncodeDate(y, m, 1) - 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(DateToStr(LastDayOfCurrentMonth));
end;

©Drkb::00736
http://delphiworld.narod.ru/
DelphiWorld 6.0
__________________
THE CRACKER IS OUT THERE

Последний раз редактировалось 4kusNick, 28.07.2007 в 23:27.
Ответить с цитированием
  #13  
Старый 28.07.2007, 23:39
killerkill killerkill вне форума
Новичок
 
Регистрация: 07.07.2007
Сообщения: 86
Репутация: 10
По умолчанию

Спасибо!!!! тебе.....

если не в лень раскажи про Компонент DateUtils (чё это вообще за хрень? перебрал все компоненты, нету(но работает)....!)

Последний раз редактировалось killerkill, 28.07.2007 в 23:53.
Ответить с цитированием
  #14  
Старый 29.07.2007, 00:04
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

DateUtils - это модуль, его надо подключать вместе с остальными.
В начале твоего pas юнита есть раздел
uses
там перечислены разные модулы, вот туда ты можешь добавть DateUtils
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter