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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.04.2015, 13:12
WhiteSadkat WhiteSadkat вне форума
Прохожий
 
Регистрация: 13.04.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Формирование отчета за месяц

Добрый день, уважаемые знатоки!

Возникла передо мной нетипичная задача - переделать код формирования отчета.

Условия:

Каждое утро происходит формирование отчета о потреблении электроэнергии в период с 00:00 01 числа текущего месяца по 00:00 сегодняшнего дня. 30 апреля произойдет формирование отчета в период 00:00 01.04.2015г по 00:00 30.04.2015. А 1 мая отчет не сформируется, т.к. "dtStart = dtEnd then Exit; end;". А есть желание, чтобы 1 мая отчет сформировался за 00:00 01.04.2015 - 00:00 01.05.2015г.

Даю вводные:
Код:
var dtStart, dtEnd, dtTemp, dtStamp: DateTime;
var dtDay, dtMonth, dtYear:integer;

begin
iParam := GetParameter(2); - параметр по данным, которые характеризуют потребление электроэнергии (устанавливаются программно)
dtEnd := GetParameter(11); - дата назначаемая программно (текущая дата)
DecodeDate (dtEnd, dtYear, dtMonth, dtDay);
dtStart := EnCodeDate(dtYear, dtMonth, 1)+0;
if dtStart = dtEnd then Exit;
Мое (ошибочное) видение решения проблемы:
Код:
DecodeDate (dtEnd, dtYear, dtMonth, dtDay);
if dtDay = 1 then
inDay (-1)
dtStart := EnCodeDate(dtYear, dtMonth, 1)+0;
if dtStart = dtEnd then Exit;
Админ: Пользуемся тегами для оформления кода!

Подскажите, подправьте порядок слов, букв, цифр.

Заранее, спасибо!

Последний раз редактировалось Admin, 13.04.2015 в 19:26.
Ответить с цитированием
  #2  
Старый 12.05.2015, 09:26
WhiteSadkat WhiteSadkat вне форума
Прохожий
 
Регистрация: 13.04.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Разве никто не может подсказать?
Ответить с цитированием
  #3  
Старый 12.05.2015, 13:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну не все сидят тут на форуме постоянно.
Вот так можно попробовать:
Код:
if dtMonth = 1
then dtStart := EnCodeDate(dtYear-1, 12, 1)
else dtStart := EnCodeDate(dtYear, dtMonth-1, 1);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 13.05.2015, 10:16
WhiteSadkat WhiteSadkat вне форума
Прохожий
 
Регистрация: 13.04.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Страдаецъ, спасибо, буду пробовать. В начале следующего месяца отпишусь))
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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