Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2012, 11:19   #1
IceSwoop
Новичок
Джуниор
 
Регистрация: 10.08.2012
Сообщений: 2
По умолчанию как вычислить отпуск?

не могу понять как вычислить количество дней в отпуске.
Пользователь вводит день и номер месяца начало отпуска, потом вводит конечный день и месяц, и нужно высчитать сколько дней в отпуске + выдать точное количество дней в отпуске.

Я понял что в задаче необходим if else, switch, но как решить так и не врубился
IceSwoop вне форума Ответить с цитированием
Старый 15.08.2012, 11:33   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

у Вас какой язык программирования? во многих языках уже есть готовые функции, возвращающие число дней (календарных) между двумя датами.

Если нужно написать "с нуля" - тогда либо:
1-й способ. Переводите каждую дату в формат - число дней с определённого момента (unix-style), дальше разницу даст банальное вычитание одного числа из другого.

2-й способ (плохой!) наращиваем меньшую из дат на один день, следя за тем, что когда дата стала больше числа дней в месяце, нарастился номер месяца, когда месяц стал больше 12 - наращиваем год, повторяем это в цикле до тех пор пока дата не сравняется со второй (большей) датой. Количество итераций цикла и даст нужное число дней.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.08.2012, 11:56   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

тут еще надо учитывать что отпускные дни считаються по рабочим дням(по крайней мере у меня отпуск идет так, 10 рабочих дней, что в сумме дает две недели по сути)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.08.2012, 11:57   #4
IceSwoop
Новичок
Джуниор
 
Регистрация: 10.08.2012
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
у Вас какой язык программирования? во многих языках уже есть готовые функции, возвращающие число дней (календарных) между двумя датами.

Если нужно написать "с нуля" - тогда либо:
1-й способ. Переводите каждую дату в формат - число дней с определённого момента (unix-style), дальше разницу даст банальное вычитание одного числа из другого.

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


Код:
#include<iostream> 
#include<windows.h> 
using namespace std;
void main()
{
SetConsoleOutputCP(1251);

int a,b,c,d,x1,x2,x;
cout<<"Введите день начала канкул"<<endl;
cout<<"Введите Месяц начала отпуска"<<endl;
cin>>a;
cin>>b;
cout<<"Введите день конца канкул"<<endl;
cout<<"Введите Месяц конца отпуска"<<endl;
cin>>d;
cin>>c;
switch(b) {
case 1:
 x1=a;
  break;
case 2:
 x1=31*a;
 break;
case 3:
 x1=60+a;
 x=x1-x2;
 break;
 case 4:
 x1=91+a;
 break;
 case 5:

Последний раз редактировалось IceSwoop; 15.08.2012 в 12:02.
IceSwoop вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сравнить 4 числа,наименьшее записать в R15.как вычислить степень? dezder Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.12.2011 13:02
Задача Оформить отпуск (Паскаль) Negreevai Помощь студентам 0 05.05.2011 16:07