Главная страница
    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.04 c
2-1155983892
SerJaNT
2006-08-19 14:38
2006.09.10
HTML и Буфер обмена


15-1155703959
MASTAFA
2006-08-16 08:52
2006.09.10
Скомпилированный файл справки. Как сделать?


15-1155553934
Furyz
2006-08-14 15:12
2006.09.10
Интересно...


15-1155592531
nafigator
2006-08-15 01:55
2006.09.10
Политкорректтность


1-1153808383
atruhin
2006-07-25 10:19
2006.09.10
Модальное окно в MDI приложении





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский