Форум » [x]Harbour » Дни недели в Харборе.... » Ответить

Дни недели в Харборе....

Andrey: Пишу в МиниГуи, т.е. там последняя версия Харбора [pre2] SET LANGUAGE TO RUSSIAN SET CODEPAGE TO RUSSIAN ...... ? "Понедельник", CTODOW("Понедельник") ? "Вторник" , CTODOW("Вторник") ? "Среда" , CTODOW("Среда") ? "Четверг" , CTODOW("Четверг") ? "Пятница" , CTODOW("Пятница") ? "Суббота" , CTODOW("Суббота") ? "Воскресенье", CTODOW("Воскресенье")[/pre2] Результат:[pre2] Понедельник 2 Вторник 3 Среда 4 Четверг 5 Пятница 6 Суббота 7 Воскресенье 1 [/pre2] И как такое понимать ?

Ответов - 5

Dima: а там как у "чукчей" , понедельник это 2 день недели и по ходу еще с Clipper PS Не знал типа ? О точно , забыл снова

Andrey: Dima пишет: Не знал типа ? О точно , забыл снова Да не забыл ! Клипер был ещё в старом столетии... На дворе 21 век. А в Харборе до сих пор по русским датам дни недели - прошлый век. Менять в Харборе не собираются совсем ? Может всё таки поменяют там на правильные дни недели ... До этого не нужны были дни недели, сейчас приспичило и обнаружил эту фигню.

SergKis: Andrey пишет сейчас приспичило и обнаружил эту фигню Еще нужны склонения месяцев, суммы прописью и ... Чего пенять, всегда сами писали, а hb повторяя clipper в этом вопросе, соблюдает историю. Вот вариант, имена сам придумай правильные (5 минут набрать) [pre2] FUNC nCtoDow( cDow ) LOCAL nDow := 0 STATIC hCtoDowN IF hCtoDowN == NIL hCtoDowN := hb_Hash() AEval( {"Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"}, ; {|cdn,ndn| hb_HSet( hCtoDowN, upper(cdn), ndn ) } ) ENDIF IF cDow != NIL nDow := hb_HGetDef( hCtoDowN, upper(cDow), 0 ) ENDIF RETURN nDow FUNC cCtoDow( nDow ) LOCAL cDow := "" STATIC hCtoDowC IF hCtoDowC == NIL hCtoDowC := hb_Hash() AEval( {"Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"}, ; {|cdn,ndn| hb_HSet( hCtoDowC, ndn, cdn ) } ) ENDIF IF nDow != NIL cDow := hb_HGetDef( hCtoDowC, nDow, "" ) ENDIF RETURN cDow ? nCtoDow("Понедельник") ? nCtoDow("Вторник") ? nCtoDow("Среда") ? nCtoDow("Четверг") ? nCtoDow("Пятница") ? nCtoDow("Суббота") ? nCtoDow("Воскресенье") ? ? cCtoDow(1) ? cCtoDow(2) ? cCtoDow(3) ? cCtoDow(4) ? cCtoDow(5) ? cCtoDow(6) ? cCtoDow(7) ? [/pre2]


Haz: Andrey пишет: До этого не нужны были дни недели, сейчас приспичило и обнаружил эту фигню. Все не просто, ... а очень просто [pre2] FUNC _CTODOW(cDay) LOCAL n := CTODOW(cDay) RETURN IF( n == 1 , 7, n - 1) FUNC _NTOCDOW(n) n := IF(n == 7, 1, n + 1) RETURN NTOCDOW(n) ? _CTODOW("Понедельник") ? _CTODOW("Вторник") ... ? _CTODOW("Воскресенье") ? _NTOCDOW(1) ? _NTOCDOW(2) ... ? _NTOCDOW(7) [/pre2] PS . При желании сдвиг в обеих функциях можно сделать назначаемым, написав свою SetDowCfg(x) где x - что считать началом недели , к примеру кому то надо чтоб со вторника начиналась, Тогда n в обеих функциях должна учитывать этот х Но я посчитал это уже лишним

Pasha: Andrey пишет: Да не забыл ! Клипер был ещё в старом столетии... На дворе 21 век. Открываем c5g01r.ng, ищем функцию dow, и наслаждаемся Клиппер писали буржуины, а у них все не как у людей :)



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