Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.045 c
3-1151917108
Bless
2006-07-03 12:58
2006.09.10
Как отловить момент, когда в DBGrid-е перешли на другую запись?


2-1156046178
Vasiliy
2006-08-20 07:56
2006.09.10
Как осуществить прокрутку в ScrollBox?


15-1155712155
TUser
2006-08-16 11:09
2006.09.10
КСЕ


2-1155842084
Denisich
2006-08-17 23:14
2006.09.10
Ошибка в rtl60.bpl


15-1155565213
PSPF2003
2006-08-14 18:20
2006.09.10
Российский сайт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский