Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22

Рассчитать количество месяцев и дней между двумя датами

18.06.2016, 16:33. Показов 5772. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна ваша помощь. Необходимо расчитать количество месяц и дней или только количество дней между двумя датами. У меня не получается это расчитать. Нужно из текущей даты вычесть дату создания файла.Помогите, пожалуйста
Delphi
1
2
k:=DateToStr(FileDateToDateTime(FileAge('Наименование_каталога/'+sRec.Name)));//дата создания файла
j:= FormatDateTime('dd.mm.yyyy', Now); //текущая дата
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2016, 16:33
Ответы с готовыми решениями:

Вычислить количество дней между двумя датами
Вычислить количество дней между двумя датами. Начальные и конечные значения дат задавать с помощью календаря(компонент HouthCalendar).

Определение количества дней между двумя датами!
Здравствуйте! помогите написать программу определяющую количество дней между двумя датами! Но с одним условием написать с использованием...

Рассчитывание количества дней, часов, минут между двумя введенными датами
Здравствуйте уважаемые программисты!!! Не очень понимаю программирование. Очень нужна ваша квалифицированная помощь в решении задачи: нужно...

44
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
18.06.2016, 19:00
Delphi
1
2
3
4
uses DateUtils;
var DayCount : integer;
...
DayCount := DaysBetween(Now, FileDateToDateTime(FileAge('Наименование_каталога/'+sRec.Name)));
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
18.06.2016, 19:48  [ТС]
D1973, выдает ошибку, что DaysBetween неизвестный идентификатор

Добавлено через 21 минуту
D1973, вот функция
Delphi
1
2
3
4
5
6
7
8
function FileAccessDateToDateTime(FileTime : tFileTime) : tDateTime;
var LocalTime : tFileTime;
    DOSFileTime : DWord;
begin
  FileTimeToLocalFileTime(FileTime, LocalTime);
  FileTimeToDosDateTime(LocalTime, LongRec(DOSFileTime).Hi, LongRec(DOSFileTime).Lo);
  Result := FileDateToDateTime(DOSFileTime); 
end;
и я когда запускаю и открываются файлы, выдается ошибка во второй строчке фунции:
[Warning] Unit2.pas(45): Unsafe typecast of 'Cardinal' to 'LongRec'
и выделяется эта строчка
DayCount := DaysBetween(Now,FileDateToDateTime(FileA ge('Ôîòî'+sRec.Name)));
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
18.06.2016, 23:47
Цитата Сообщение от Zloi_angel Посмотреть сообщение
D1973, выдает ошибку, что DaysBetween неизвестный идентификатор
Я вот это это вот
Цитата Сообщение от D1973 Посмотреть сообщение
uses DateUtils;
для чего написал, для красоты что-ли?
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
19.06.2016, 14:19  [ТС]
D1973, я это исправил. другая уже ошибка после этого выходит. написал выше!
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
19.06.2016, 20:10
Не совсем понятно, причем тут твоя функция и DaysBetween, которая в этой функции и не фигурирует нигде?
Читай материалы по этим самым API-шным функциям, которые в своей функции используешь... Мне всегда для определения даты / времени создания файла хватало того, что я тебе написал, а полностью твоей задачи я не знаю... Да и, по-хорошему, задача твоя, тебе и путь решения выбирать.
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
19.06.2016, 20:13  [ТС]
D1973, cпасибо, уже во всем разобрался сам. Все работает. осталось мелочь. Как сделать окончание слов в зависимости от последней цифры?
Delphi
1
Lb.Items.Add(sRec.Name+'-' + ' ' +'осталось' + ' ' + inttostr(h) + ' ' + 'день');
inttostr(h) - это цифра
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
19.06.2016, 22:41
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var h, k : integer;
    s : string;
begin
 h := 231;
 s := IntToStr(h);
 k := StrToInt(s[Length(s)]);
 if (h = 11) or (h = 12) or (h = 13) or (h = 14) or (k = 0) or (k > 4)
  then s := ' дней'
  else
   case k of
    1       : s := ' день';
    2, 3, 4 : s := ' дня'
   end;
 s := IntToStr(h) + s;
 ShowMessage(s);
Миниатюры
Рассчитать количество месяцев и дней между двумя датами  
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
19.06.2016, 22:45
Условие можно и покороче записать:
Delphi
1
if ((h > 10) and (h < 15)) or (k = 0) or (k > 4)
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
20.06.2016, 12:42  [ТС]
D1973, а как сделать сортировку по дня? от самого маленького до самого большого?

Добавлено через 1 час 18 минут
D1973, и по алфавиту фамилии, по первой букве
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
20.06.2016, 15:23

Не по теме:

Дяденька, дай попить, а то так есть хочется, что переночевать негде...


Цитата Сообщение от Zloi_angel Посмотреть сообщение
а как сделать сортировку по дня? от самого маленького до самого большого?
Где сделать? В массиве, в БД, еще где-то?
Цитата Сообщение от Zloi_angel Посмотреть сообщение
и по алфавиту фамилии, по первой букве
Аналогичный вопрос...
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
20.06.2016, 16:07  [ТС]
D1973, в ListBox. inttostr(h) - кол-во дней
0
5988 / 4563 / 1096
Регистрация: 29.08.2013
Сообщений: 28,203
Записей в блоге: 3
20.06.2016, 16:11
а ты почитай что такое ListBox.ITEMS
и как в TStrings делается сортировка

на этом форуме есть готовое решение
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
20.06.2016, 16:14  [ТС]
qwertehok, я смотрел. Я начинающий и в сортировке не шарю. поэтому прошу помощи
0
5988 / 4563 / 1096
Регистрация: 29.08.2013
Сообщений: 28,203
Записей в блоге: 3
20.06.2016, 16:16

Не по теме:

и я не шарил, но взял, почитал, сделал примерчик и все - гуру :)))



Сортировка чисел и строк в StringGrid, по возрастанию
почти то
нужно искать по слову CustomSort
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
20.06.2016, 16:18  [ТС]
qwertehok, у меня сначала идут фамилии и рядом у каждой фамилии цифры. мне нужно сделать у фамилий сортировку по алфавиту и у цифр. Сортировку фамилий сделал, а как с цифрами быть
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
20.06.2016, 16:18
Zloi_angel, а что, это не устраивает?
Delphi
1
ListBox1.Sorted := true;
0
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 22
20.06.2016, 16:20  [ТС]
D1973, это я сделал. Фамилии сортируются по алфавиту. теперь нужно рядом стоящие цифры по убыванию отсортировать
0
5988 / 4563 / 1096
Регистрация: 29.08.2013
Сообщений: 28,203
Записей в блоге: 3
20.06.2016, 16:22
тогда у вас нарушится сортировка фамилий
а если нужно ОТДЕЛЬНО отсортировать - считывайте их в другой ListBox, сортируйте и присваивайте назад
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,424
Записей в блоге: 3
20.06.2016, 16:28
Цитата Сообщение от Zloi_angel Посмотреть сообщение
Фамилии сортируются по алфавиту. теперь нужно рядом стоящие цифры по убыванию отсортировать
Т.е. ты из этого:
Козлов 100
Овечкин 25
Баранов 50
хочешь получить это?
Баранов 100
Козлов 50
Овечкин 25
Ерунда какая-то получается...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2016, 16:28
Помогаю со студенческими работами здесь

Количество дней между датами
Здравствуйте. Есть две даты в ячейках StringGrid , введенные с помощью MonthCalendar1.Date. Как найти количество дней между датами?

Количество дней между 2-мя датами
Помогите найти количество дней меджу двумя датами, если например даты вводяться в 2 поля Edit1 и Edit2. Объясните как написать даную...

Количество дней между датами
Здравствуйте! Подскажите пожалуйста как лучше написать программу рассчет колличества дней между датами. Каким лучше способом(через :...

Количество часов между двумя датами
Нужно вычислить кол-во часов между двумя датами. Точность тоже имеет значение (представлять не целым числом, а вещественным). Пробовал...

Вычисление количества дней между датами
Добрый день суть проблемы такова, есть 3 поля едит в первом окне стоит реальная дата например 21.11.2016 во втором поле другая дата...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru