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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 18:51   #1
St@ter
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 18
По умолчанию Программа на даты, проверка на високосность и вычисление номера дня с нач. года (Visual Studio C++ 2010)

Здравствуйте! Такая проблема, задали написать програму, где даны три натуральных числа, которые обозначают число, месяц и год соответственно.
Проверить корректность этой даты Найти номер этого дня с начала года. ( с учетом високосного года)
Вот код ( на с++):

Код:
#include<iostream>
using namespace std;

int main()
{
 setlocale( 0, "" );
 int n=0, i, dd, mm, yy, feb = 28;

 cout << "Введите число, месяц и год\n";
  cin >> dd >> mm >> yy;
 if( ( mm <= 0 ) || ( dd <= 0 ) || ( yy <= 0 ) || ( yy >= 2013 ) || ( mm >= 32 ) || ( mm >12 ) || ( dd > 31 ) )
 {
  cout << "Некорректная дата\n";
   
  system("pause");

  return 0;
 }
 if( yy % 4 == 0 ){
  feb = 29;
 if if (!( ( mm == 1 ) || ( mm == 3 ) || ( mm == 5) || ( mm == 7 ) || ( mm == 8 ) || ( mm == 10 ) || ( mm == 12 ) || (mm == 6) || ( mm == 9 ) || ( mm == 4 ) || ( mm == 11) || (m == 2)))
	 //( ( mm == 1 ) || ( mm == 3 ) || ( mm == 7 ) || ( mm == 8 ) || ( mm == 10 ) || ( mm == 12 ) || (mm == 6) || ( mm == 9 ) || ( mm == 4 ) || ( mm == 11) )
 {
  if( dd > 30 )
  {
   cout << "Дата некорректна\n";

    system("pause");

   return 0;
  }
 }
 else if( mm == 2 )
 {
  if( dd > feb )
  {
   cout << "Дата некорректна\n";
    
   system("pause");
    
   return 0;
  }
 }
 else
 
  if( dd > 31 )
  {
   cout << "Дата некорректна\n";

    system("pause");

   return 0;
  }
 
 cout << "Дата корректна\n";
 for( i = 1; i < mm; i++ )
 {
  if( i == 2 )
   n += feb;
  else if( (i == 6) || ( i == 9 ) || ( i == 4 ) || ( i == 5) || ( i == 11) )
  {
   n += 30;
  }
  else
  {
   n += 31;
 n += dd;
  }
 }
 cout << n << " день с начала года \n";

 cin>>n;

 system("pause");

 return 0;

}
Помогите пожалуйста исправить.. Программа не видит месяца с 31им днем и неправильно считает номер дня (

Последний раз редактировалось St@ter; 03.12.2012 в 18:33.
St@ter вне форума Ответить с цитированием
Старый 03.12.2012, 14:50   #2
St@ter
Пользователь
 
Регистрация: 02.12.2012
Сообщений: 18
По умолчанию

Неужели никто не знает? (
St@ter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даты daniil123 Паскаль, Turbo Pascal, PascalABC.NET 2 15.11.2011 00:52
Как сделать так чтобы не отображались даты Даты вместо Цифр в ЕКСЕЛЬ? d88n Помощь студентам 1 17.06.2011 05:16
Определить среднее значение продаж от даты до даты СтепКо Microsoft Office Excel 1 26.02.2011 20:08
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
Даты Sparky БД в Delphi 6 02.10.2009 09:48