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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2019, 23:17   #1
Vera Pav
Новичок
Джуниор
 
Регистрация: 04.06.2019
Сообщений: 1
Восклицание [C++] Даны натуральные числа a,b,c которые указывают дату(число,месяц,год). Найти номер этого дня с начала года. нужно составить прогу с использованием класса

Даны натуральные числа a,b,c которые указывают дату(число,месяц,год).
Найти номер этого дня с начала года.(нужно составить прогу с использованием класса )

Код:
#include <iostream>

using namespace std;

class ABC {
    public:

    int day, mounth, year;

    ABC(int day, int mounth, int year) : day(day), mounth(mounth), year(year)
    {

    }

    ABC(int data) 
    {
        year = data%10000;
        data /= 10000;
        mounth = data%100;
        data /= 100;
        day = data;
    }

    void print()
    {
        cout << day << "." << mounth << "." << year << endl;
    }
 
    void print_number_day(class ABC data)
	{int days_in_month[] =
{
   31,  
   28,   
   31,   
   30,   
   31,   
   30,   
   31,   
   31,   
   30,   
   31,  
   30,  
   31,
};

int is_leap_year( int year )
{
   return (year & 3) ? 0 : (year % 100) ? 1 : year % 400 == 0;

   if( year & 3 ) return 0;   
   if( year % 100 ) return 1;   
   return year % 400 == 0;

}
int main()
{
   int day, month, year;
   printf( "enter date (day, month, year)n digits through the dot " );
   scanf( "%d . %d . %d", &day, &month, &year );
   if( --month == 1 ) 
      days_in_month[1] = is_leap_year(year) ? 29 : 28;
   if( (unsigned)month > 11 || day <= 0 || day > days_in_month[month] || year <= 0 ) {
      printf( "invalid dates!!!!.\n" );
     
      return 1;
  }
    
    
    
};
int main()
{

    class ABC data;
    data.print();
    data.number_day();
   
    


    return 0;
}
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 04.06.2019 в 23:23.
Vera Pav вне форума Ответить с цитированием
Старый 05.06.2019, 19:03   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Вот тут есть формула для вычисления юлианской даты для заданной как dd.mm.yyyy:
https://ru.wikipedia.org/wiki/%D0%AE...B0%D1%82%D0%B0
Один метод - вычисление юлианской даты по дате григорианского календаря.
Второй метод - вычисление номера дня года как разность юлианских дат.
В указанных формулах учитываются високосные года.
...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральные числа N, M. Найти все натуральные числа, меньшие N, квадрат суммы цифр которых равен M Namatrasnik Помощь студентам 1 03.11.2016 23:29
с++. Даны натуральные числа q1,...,qn. Найти те члены аi последовательности q1,...,qn, которые при делении на 7 дают остаток 1,2 или 5. Nyo Помощь студентам 3 04.09.2016 08:42
Даны натуральные числа n, q1, …, qn. Найти те члены qi последовательности q1, …, qn, которые обладают тем свойством, что корни ур bad9 Помощь студентам 0 10.06.2012 16:33
Даны натуральные числа n, q1, …, qn. Найти те члены qi последовательности q1, …, qn, которые bad9 Помощь студентам 0 08.06.2012 12:28
Даны числа A,B,C обозначающие дату.Найти номер этого дня от начала года. naty7773 Помощь студентам 5 13.01.2012 13:35