Задача по вычислению часов опреденного месяца в неделе.

Язон динАльт

Новичок
Задача по вычислению часов опреденного месяца в неделе.

Привет, all.

Исходные данные:
Серв: Apache 2.2.2
PHP 5.1.4
БД: MSSQL 2k

Проблема:

Идет ввод часов по проектам каждую неделю. Потом это должно входить в отчет за месяц. Но вот какая проблема.

Я вычисляю, сколько было введено за месяц сравнивая дату ввода с сегодняшней... и если месяц совпадает с тем когда было введено, то это плюсуется. НО проблема в том, что есть такие недели, когда, например, 2 дня из них входит в один месяц, а 3 в другой... как это вычислить в засчитать в нужный месяц?

И вообще, как это построить? Может я изначально неправильно делаю?

заранее спасибо

-~{}~ 13.07.06 11:24:

мда блин... мож разместил не туда?
придумал пока тупое решение, завести таблицу где будут "проблемные" недели... ну и плясать отсюда...
 

Язон динАльт

Новичок
лана... решил по своему... объяснять в лом... смысл: есть недели часы на которой относятся к разным месяцам... надо как то разграничивать, ток не понятно как...
 

bgm

 
Язон динАльт

Когда вводишь часы по проекту надо указывать и хранить дату, на которую пришлись эти часы.
Тогда всё делается одной простой выборкой - суммирование по тем записям часов, где месяц совпадает с текущим.
 

Язон динАльт

Новичок
bgm
если бы все было так просто...
рабочая неделя 40 часов и человек их ввел 29ого в понедельник
но 16 часов из этой недели (1 и 2ое) приходятся уже на другой месяц!
 

bgm

 
Есть функция date: http://ru.php.net/manual/ru/function.date.php, которая позволяет: узнать порядковый номер дня недели и узнать количество дней в месяце. Твоя задача, как я понимаю, состоит в том, чтобы, получив количество часов и дату начала, разбить эти часы на дни по 8 часов в день:
1. Узнать полное количество дней (разделив количество часов на 8);
2. Последовательно вносить по 8 часов в таблицу с указанием даты и пропуская нерабочие дни.
3. Внести остаток последнего дня (если число часов не кратно восьми).

Понятно методически? :)
 

Язон динАльт

Новичок
Автор оригинала: bgm
Есть функция date: http://ru.php.net/manual/ru/function.date.php, которая позволяет: узнать порядковый номер дня недели и узнать количество дней в месяце. Твоя задача, как я понимаю, состоит в том, чтобы, получив количество часов и дату начала, разбить эти часы на дни по 8 часов в день:
1. Узнать полное количество дней (разделив количество часов на 8);
2. Последовательно вносить по 8 часов в таблицу с указанием даты и пропуская нерабочие дни.
3. Внести остаток последнего дня (если число часов не кратно восьми).

Понятно методически? :)
поняятно)) ток если " вносить по 8 часов в таблицу" загнется она у меня через месяц :D

но идея классная, просто сделаю, что добавляться будет сразу две строки... одна посчитанная за один месяц, а другая за другой)))

bgm
спасибо ;)

ЗЫ
до меня только сейчас дошло, что мне это решение приснилось, а я про него забыл! может и не Врали про Менделеева, что Таблицу свою увидел во сне?))))))

-~{}~ 14.07.06 10:15:

Есть функция date: http://ru.php.net/manual/ru/function.date.php

не знаю можно ли тут такие ссылки оставлять, но вот тоже хороший сайтик, и сразу дам ссылку на эту ф-цию:

http://php.su/functions/?date
 
Сверху