Форум » [x]Harbour » DOW() и компания » Ответить

DOW() и компания

Dima: Нет ли какой переключалки в Harbour что бы функции из разряда дней недели Dow() , Cdow() , NtocDow() работали по европейскому стандарту в котором первый день недели понедельник а не в американском где первый день недели воскресение. Понятно что можно свои переходники спаять. PS В пиндостане все ни как у людей

Ответов - 28, стр: 1 2 All

Dima: Pasha Если не сложно и время есть , можешь релизнуть всех братцев DOW() , ты понял о чем я в Cи варианте ?

Haz: Dima пишет: тест чекануть ;) что не так ? ? dow(date()+i), FT_DAYTOBOW(date()+i) + 1 этим FT_DATECNFG( , 6 ) ты установил в что неделя начинается в ПЯТНИЦУ тогда четверг это 7 вот твой тест с +1 5 7 четверг 6 1 пятница 7 2 суббота 1 3 2 4 3 5 4 6 Надо ставить не пятницу конечно

Dima: Haz Извини что спать не даю ))) Смотри. [pre2] for i=0 to 7 ? dow(date()+i), _dow(date()+i),FT_DAYTOBOW(date()+i) + 1 next wait #pragma BEGINDUMP #include "hbapi.h" HB_FUNC( _DOW ) { hb_retnl( HB_ISDATE(1) ? (hb_pardl(1) % 7) + 1 : 0 ); } #pragma ENDDUMP [/pre2] Результат [pre2] 5 4 5 6 5 6 7 6 7 1 7 1 2 1 2 3 2 3 4 3 4 5 4 5 [/pre2]


Dima: Да виноват надо было FT_DATECNFG( , 2 ) Буду знать. Но вариант Паши мне больше нравится ! ;)

Haz: Dima пишет: Смотри. так проверь Func Main() local i := 0 local dDate := DATE() FT_DATECNFG( , 2 ) for i := 0 to 6 ? dow(date()+i), FT_DAYTOBOW(date()+i)+1 next RETURN NIL у Паши несравнимо эффективнее в этом случае , но FT_ XXXXX() много еще чего могут , прими в копилку ))

Dima: Haz пишет: прими в копилку Понял ! Dima пишет: Если не сложно и время есть , можешь релизнуть всех братцев DOW() , ты понял о чем я в Cи варианте ? Павел это можно сделать ? Хотя бы CDOW , Ntocdow

Pasha: CDOW переделывать смысла нет, т.к. там на вход подается дата, а на выходе - строка Ntocdow - это если на вход дается номер дня недели: #pragma BEGINDUMP #include "hbapi.h" #include "hbapilng.h" HB_FUNC( _DOW ) { hb_retnl( HB_ISDATE(1) ? (hb_pardl(1) % 7) + 1 : 0 ); } HB_FUNC( NTOCDOW ) { int iDow; if( HB_ISNUM(1) ) iDow = hb_parni(1); else iDow = 0; if( iDow >= 1 && iDow <= 7 ) hb_retc_const( hb_langDGetItem( HB_LANG_ITEM_BASE_DAY + ( iDow % 7 ) ) ); else hb_retc(""); } #pragma ENDDUMP А больше там функций вроде бы и нет

Dima: Pasha Да с CDOW() я ошибся и ему все равно какой стандарт. 10 июля 2015 что в Африке пятница , что в Америке ......хоть что то общее ;) Спасибо за NTOCDOW , работает



полная версия страницы