Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > разбор выражения |
Автор: cube 14.8.2009, 18:57 |
есть строка типа "1+1" в моей программе это означает режим работы мастера, т.е. мастер работает день через день, или вот еще "(12:15)+2" означает что мастер работает с 12 до 15 и два дня отдыхает... Этот синтаксис зависит от меня, - я разработчик, но чтобы не изобретать велосипед, может подскажете какие-нибудь удобные решения? В дальнейшем в программе по графику 1+1 будет вызываться метод, который парсит эту логику и по ней произхводит необходимые действия.Спасибо! |
Автор: garbuz 14.8.2009, 19:19 |
Что-то ерунда какая-то имхо. Используйте классы Date, Calendar и DateFormat. |
Автор: cube 14.8.2009, 19:32 | ||
человек должен на месяц или хуже на год забить график работы мастеру, он не будет же делать это вручную? а если через месяц график работы мастера меняется, и меняются графики работы других мастеров? как быть? то что программно переформируется "1+1" на даты и в базе данных сохранятся именно даты - это понятно. |
Автор: COVD 14.8.2009, 20:08 |
У вас, наверное, учебный проект. Иначе трудно представить зачем такие сложности в сфере бытового обслуживания ![]() |
Автор: cube 14.8.2009, 22:24 |
У меня русская виста, не могу найти ваш пример... Проект учебный - для меня, но не для заказчика)) Если честно много чему научился когда начал вести этот проект. Задача такая встречается довольно часто в сферах обслуживания, я не знаю почему вы так написали... Мой проект - программа для салона красоты. Основная задача которой систематизировать запись клиентов в салон и график работ мастеров. Все поделено на виды услуг, услуги, клиенты, мастера и т.д... график работ тоже не исключение. Вот именно там и требуется чтобы администратор салона мог расписать график работы мастеру на неделю, месяц или год... так же чтобы имелась возможность копировать график с предыдущего месяца, недели... Мало того администратор долже иметь возможность сам создавать графики (день через день, сутки через двое, пять на семь, шесть на семь, двое через сутки....) и даже больше - мастер может работать и по пол дня, и так же отдыхать, так же и по часово... Естественно когда администратор будет принимать заказ он графически должен видеть какой мастер каких видов услуг когда работет, когда занят и когда свободен... И заказчика такая возможность очень интересует... |
Автор: COVD 14.8.2009, 23:01 | ||
Потому, что обычно это заведения, в которых численность работающих небольшая. График работы у них бывает сбивается, подменяют друг друга, у мастеров появляются постоянные клиенты. В таких условиях проще управляться без компьютера. Но раз заказали - дерзайте. |
Автор: Skynin 14.8.2009, 23:10 | ||
Не один год решал эти задачи на 1С:Зарплата и в самописных системах (на FoxPro и MUMPSе), так что сразу скажу - хранить даты вместо графика - неверно. Только для совсем простых случаев подойдет. Но для того что Вы хотите, создание и копирование графиков, замены, подмены - нужно хранить именно график как он есть. Возможно хранить два, планируемый и отклонения. Или 3 - планируемый и ожидаемые отклонения и реальные отклонения. Или вообще с табеля начать, взяв за основу формы Т-12, Т-13 И т.д. В общем случае - задачи эти весьма нетривиальны, и "классы Date, Calendar и DateFormat" примерно как - для отображения GUI окна используйте байты, слова и инты. Такой низкий уровень почти никак не поможет для решения Вашей задачи. Библиотеки не подскажу, погуглите "open ERP Java", Salary. Или "Учет рабочего времени" и посмотреть демки программ, чтобы проникнуться темой ![]() |
Автор: COVD 14.8.2009, 23:17 | ||
это самое правильное - начать с существующих приложений (1С ?) |
Автор: cube 14.8.2009, 23:22 | ||||
я боюсь с табелев начинать, потому что моему заказчику не понятно на сколько сложен данный проект, он хочет получить его быстрее и с меньшими затратами, я больше чем уверен что он считает что все это просто и уже есть куча решений, которые можно вять и просто подключить... Что касается дат и календарей, то у меня есть некоторые шаблоны с логикой, вначале темы я писал про это... а как в базе храниться, это уже второй вопрос... почему не храниться график - потому как по графику расписание создается один раз + иногда редактирование, а вот с днем на которое приходится расписание человек работает постоянно... мало того другая система дергает отчеты из этой базы... и усложняться самому + усложнить ту систему - меня уволят просто |
Автор: Skynin 14.8.2009, 23:29 | ||||||||||
Правильное решение в данном случае - начать с освоения предметной области, абстрагировавшись от инструментов. Но тогда придется читать "скучную" литературу расчетчика зарплаты. Поэтому более щадящий вариант - посмотреть как сделано другими, вначале снаружи (вместо "скучной" книжки) потом внутри. Упомянутые требования по задаче указывают что это не "Hello world" написать, а нужно 1. понять предметную область 2. спроектировать реализацию 3. наваять В 1С, кстати, при всей ее заточенности подсистема расчета зарплаты - самая слабая из трех (бух учет, опер учет) Не их вина, "начисление зарплаты является одним из самых сложных разделов бух учета"(С) А состоит он из двух Кусков - деньги и время. Самый простой вариант второго куска- прямой учет - когда нет привязки к графикам, а просто ведем табель. Но нужны то - графики и операции над ними ![]() Такая вот предисловие.
99,9% заказчиков так считают. И хотят побыстрее. Но взять и подключить - уверен не получится. Даже если найдете то что нужно.
Э-э-э не, ![]()
А что же тогда будете копировать? А как будете переводить человека на другой график, заставлять оператора перешлепывать даты? Далее - "иногда" в таких ситуациях - почему-то норовит превратится во "всегда"
И что? У Вас нет возможности хранить свои данные в базе? Но хорошо, знаете как просто - делайте ![]() ИМХО - случится по аналогии "скупой платит дважды" и будет надцать велосипедов с заплатками на жвачке и скотче и связанные между собой бечевками. |