Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

O... Задача.....   Найти похожие ветки 

 
memo   (2006-08-17 12:46) [0]

Привет всем!
Есть такая задачка, голову ломаю уже 1 час...
Определить, сколько полных месяцев прошло...
Не просто, к примеру с 01.01.2006 по 01.04.2006, а мес., начинается с
11.01.2006 по 10.02.2006, т.е. с 11 чесла по 10 следующего, считается месяц.

Пример функции SQL:

-select dbo.fnGetKolMesVas("03.11.2006","04.11.2006")
CREATE function fnGetKolMesVas ( @Dpo datetime, @Dppo datetime ) returns int
as
 begin
  declare
   @Count int,
   @Dat_S int,
   @Dat_P int,
   @Start datetime,
   @Stop datetime,
   @PP datetime
   
  set @Dat_S=11
  set @Dat_P=10
  --set @PP=0

  if @Dpo>@Dppo
   begin
    set @PP=@Dpo
    set @Dpo=@Dppo
    set @Dppo=@PP
   end

  if @Dpo >= dbo.Recodate("dd",@Dat_S,@Dpo) --and dbo.Recodate("dd",@Dat_P,dateadd(m,1,@Dpo))
    set @Start=dbo.Recodate("dd",@Dat_S,@Dpo) --03

  if @Dppo <= dbo.Recodate("dd",@Dat_P,@Dppo) --and dbo.Recodate("dd",@Dat_P,dateadd(m,1,@Dppo))
   set @Stop=dbo.Recodate("dd",@Dat_S,dateadd(m,-1,@Dppo))

  set @Count = datediff(m,@Start,@Stop)
  return  @Count
  end


jib,rb tcnm


 
McSimm ©   (2006-08-17 12:49) [1]

как определить дату завтрашнего дня я уже знаю:

void get_tomorrow_date(struct timeval *date )
{
   sleep( 86400 ); // 60 * 60 * 24
   gettimeofday( date, 0 );
}


( извиняюсь за офтопик :)


 
SergP.   (2006-08-17 13:06) [2]

> [1] McSimm ©   (17.08.06 12:49)


Супер... :-)


 
Ketmar ©   (2006-08-17 13:09) [3]

> [1] McSimm ©   (17.08.06 12:49)
фмемориз! %-)


 
Слоник   (2006-08-17 13:17) [4]


> void get_tomorrow_date(struct timeval *date )
> {
>    sleep( 86400 ); // 60 * 60 * 24
>    gettimeofday( date, 0 );
> }
>

а разве не в миллисекундах задаётся время? и gettimeofday возвращает только время без даты..
но по задумке - шедевр, факт =)


 
Skyle ©   (2006-08-17 13:20) [5]

А что не нравится в [0]?


 
Desdechado ©   (2006-08-17 13:28) [6]

> как определить дату завтрашнего дня я уже знаю:
баян

лучше скажи как определить вчерашнюю дату

автору
> сколько полных месяцев прошло...
Определение полногомесяца в студию.
А то 28-31 день..., да и месяц - от лунного цикла, а он вообще в целых сутках не измеряется...


 
SergP.   (2006-08-17 13:39) [7]

> лучше скажи как определить вчерашнюю дату


Методом [1] пока не получится... По крайней мере пока не изобрели машину времени...


 
Empleado ©   (2006-08-17 13:44) [8]


> SergP.   (17.08.06 13:39) [7]
> > лучше скажи как определить вчерашнюю дату

Программно "перемотать" часы на компе на двое суток назад и затем воспользоваться --> McSimm ©  (17.08.06 12:49) [1]


 
isasa ©   (2006-08-17 14:06) [9]

Desdechado ©   (17.08.06 13:28) [6]
Определение полногомесяца в студию.

:)
написано же, определение

... а мес., начинается с 11.01.2006 по 10.02.2006, т.е. с 11 чесла по 10 следующего, считается месяц.


 
evvcom ©   (2006-08-17 14:08) [10]

> [8] Empleado ©   (17.08.06 13:44)

А теперь скажи, как определить 2-е суток назад, чтобы перемотать часы на компе? :-)
Наверное, 2 раза [7]? :)


 
boriskb ©   (2006-08-17 16:22) [11]

McSimm ©   (17.08.06 12:49) [1]
http://forum.vbios.com/showflat.php?Cat=0&Number=263311&page=0&vc=#Post263311



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
2-1156247645
tytus
2006-08-22 15:54
2006.09.10
TOracleQuery


2-1155798124
Chort
2006-08-17 11:02
2006.09.10
закрепленее - в Excel


3-1151753384
Muchacho
2006-07-01 15:29
2006.09.10
Установка Fast Report 3.x в Delphi 2006 .NET


3-1152192063
mefisto
2006-07-06 17:21
2006.09.10
"Наглядный" SQL Запрос : )


15-1155621138
Sam Stone
2006-08-15 09:52
2006.09.10
Спиральные галактики