Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Первый и последний дни месяца. [D7, XP]


deras ©   (2008-01-22 14:57:00) 

Вх. данные: число месяца, год
Необходимо получить 2 даты:
- дата первого дня указаного месяца и года
- дата последнего дня указаного месяца и года

Благодарю.


{RASkov}   (2008-01-23 14:57:00) [1]

> [17] Семеныч   (23.01.08 11:19)

Ну прекращай уже :)
Уже не смешно становится...


Семеныч   (2008-01-23 11:19:00) [2]

> Sergey13 ©   (23.01.08 11:00) [16]

Вот другой псевдокод:

EncodeDate(1, месяц, год)
EncodeDate(1, месяц + 1, год) - 1

Этот псевдокод намного менее примитивен, чем Ваш (боже! кошмар!). Но он ровно столь же тривиален, что и Ваш - поскольку использует тот же самый всем очевидный алгоритм.

Скажите, Вы действительно считаете других настолько глупыми, что им нужно объяснять, сколько будет дважды два? И при этом еще сомневаетесь, поняли ли они Ваши объяснения?


Sergey13   (2008-01-23 11:00:00) [3]

> [13] Семеныч   (23.01.08 10:35)
> Да и вряд ли вообще нужны ответы, в которых излагаются тривиальные
> вещи, очевидные даже для первоклассников.

Эти тривиальные вещи на самом деле алгоритм определения искомых дат.

> Вх. данные: число месяца, год
> Необходимо получить 2 даты:
> - дата первого дня указаного месяца и года

StrToDate('01'+месяц+год)

> - дата последнего дня указаного месяца и года

StrToDate('01'+(месяц+1)+год)-1

Разумеется это примитивный псевдокод (на случай если ты попытаешься это откомпилировать).

Если ты не понял, что это алгоритм, то видимо ты зашел не на тот сайт. А не поняв, видимо решил, что это издевка.

Почитав несколько твоих постов в разных ветках я не нашел к сожалению твоих ответов авторам по существу, только обсуждения постов отвечающих. Ты видишь в этом свое предназначение?


Семеныч   (2008-01-23 10:52:00) [4]

> {RASkov} ©   (23.01.08 10:43) [14]

Не хотелось бы к такому привыкать.


{RASkov}   (2008-01-23 10:43:00) [5]

> [13] Семеныч   (23.01.08 10:35)
> Да и вряд ли вообще нужны ответы, в которых излагаются тривиальные
> вещи, очевидные даже для первоклассников.

Вот нытьё чье-то здесь точно не нужно, а разные варианты решения вопроса ветки это разве плохо?

> странные здесь вещи приняты

:)
Есть такое, но никуда от этого не денешься)

> Дико просто.

Нет.... просто не привычно), Привыкнешь и все будет нормально....
Или просто больше сюда не придешь, а если так - то зря :)


Семеныч   (2008-01-23 10:35:00) [6]

> Sergey13 ©   (23.01.08 09:08) [10]

Вряд ли задавший вопрос настолько глуп, что нуждался в подсказке очевидного. Проблема состояла не в этом, а в том, как получить результат именно в виде TDateTime. Человек просто не знал нужных функций и после того, как ему их подсказали, проблема была сразу же закрыта. Что он, фактически, и сообщил в [3] (иначе были бы новые вопросы). Значит, появившийся через час после этого Ваш постинг был уже не нужен. Да и вряд ли вообще нужны ответы, в которых излагаются тривиальные вещи, очевидные даже для первоклассников.

Конечно, Ваше мнение на этот счет может быть совершенно другим и оно тоже имеет право на существование. Пусть так. Но даже и в этом случае Вы вполне могли бы сказать то же самое, что и сказали - только без издевки.

Зашел вот на этот сайт, почитал - странные здесь вещи приняты. Дико просто.


Slym   (2008-01-23 10:30:00) [7]

Slym ©   (23.01.08 10:29) [11]
function EndOfAMonth(date:TDateTime):TDateTime;

поправка
function EndOfAMonth(date:TDateTime):TDateTime;
begin
 result:=StartOfAMonth(StartOfAMonth(date)+32)-OneMillisecond;
end;


Slym   (2008-01-23 10:29:00) [8]

Sergey13 ©   (23.01.08 9:08) [10]
+1
function StartOfAMonth(date:TDateTime):TDateTime;
begin
 result:=Int(date)-DayOf(date)+1;
end;

function EndOfAMonth(date:TDateTime):TDateTime;
begin
 result:=StartOfAMonth(StartOfAMonth(date)+32)-1;
end;


Sergey13   (2008-01-23 09:08:00) [9]

> [7] Семеныч   (22.01.08 17:04)

Ты новый хранитель местных традиций или представляешь святую инквизицию? Тогда хоть зарегистрируйся.

> еще имели смысл?
Представь себе да. Например в SQL запросе, где недоступны делфийские функции, удобнее, ИМХО, пользоваться именно моими вариантом(то, что это вариант решения я честно указал).


Anatoly Podgoretsky   (2008-01-22 19:10:00) [10]


> По моим наблюдениям они заканчиваются накануне 1 числа следущего
> месяца

А по моим наблюдениям она равна количеству дней в месяце.


engine   (2008-01-22 17:06:00) [11]

> [7] Семеныч   (22.01.08 17:04)

О чем спор? Сергей по теме ответил, вроде все правильно.


Семеныч   (2008-01-22 17:04:00) [12]

> Sergey13 ©   (22.01.08 17:00) [6]

То есть, Вы считаете, что после [3] Ваши наблюдения еще имели смысл?


Sergey13   (2008-01-22 17:00:00) [13]

> [5] Семеныч   (22.01.08 16:56)

А кто-то утверждал, что 1 число - полная дата?
Я давал вариант нахождениянужных дат.


Семеныч   (2008-01-22 16:56:00) [14]

> Sergey13 ©   (22.01.08 16:47) [4]

По моим наблюдениям, 1 число - не дата. Дата - это когда число упаковано вместе с месяцем и годом в TDateTime. О чем и говорилось в [1] и [2].

2. По моим наблюдениям, число месяца накануне первого чиса следующего месяца - тоже не дата. См. п. 1.


Sergey13   (2008-01-22 16:47:00) [15]

> [0] deras ©   (22.01.08 14:57)
Как вариант.

> - дата первого дня указаного месяца и года
По моим наблюдениям они все начинаются с 1 числа

> - дата последнего дня указаного месяца и года
По моим наблюдениям они заканчиваются накануне 1 числа следущего месяца


deras   (2008-01-22 15:08:00) [16]


> engine ©   (22.01.08 15:02) [1]


> Ega23 ©   (22.01.08 15:04) [2]


Спасибо!


Ega23   (2008-01-22 15:04:00) [17]


> Вх. данные: число месяца, год


>
> StartOfAMonth
> EndOfAMonth
>


+ EncodeDate и decodedate


engine   (2008-01-22 15:02:00) [18]

> [0] deras ©   (22.01.08 14:57)

StartOfAMonth
EndOfAMonth


Наверх

Титульная страница Поиск, карта сайта Написать письмо