Основи програмування на С ++ для початківців

Задача. Обчислити кількість днів між датами.

завдання просте: Знайти кількість днів між двома датами. Передбачити облік високосних років.

Для практики пропонується два варіанти:

  1. Одна з граничних дат описується тільки роком. Тобто початкова дата вводиться повністю (например 25.12.2015), а друга тільки рік (например 2016). Проводиться підрахунок днів до 01.01.2016
  2. Обидві дати повні – описуються днем ​​місяцем роком.

Наведу свій приклад, частково вирішальний перший спрощений варіант:

тут функція DaysCount() приймає в перших трьох параметрах початкову дату (рік, місяць, день) і останнім параметром граничну (рік, 1-й день січня)

Вирішувати можна будь-яким способом, хоч циклом хоч чимось ще. А ось рішення по другому варіанту не покажу :) Нехай воно буде домашнім завданням. хай щастить!

Питання задавайте в коментарях

15 думки про "Задача. Обчислити кількість днів між датами.

  1. допоможіть будь ласка написати програму

    Визначити скільки днів в році (всього 12 місяців, в кожному є певна кількість днів) використовуючи функцію for і одновимірний масив

  2. [код]#include “stdafx.h”
    #include
    using namespace std;
    int main()
    {
    ІНТ monthM[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    char ch;
    ІНТ кінець, день, місяць, рік, сума = 0;
    setlocale(LC_ALL, “rus”);
    cout <> день >> ч >> місяць >> ч >> рік;
    cout<> end;

    for (INT I = місяць + 1;i <= 11;i ) сума + = monthM[i];
    сума + = monthM[місяць]+день + (end – рік) * 365;
    for (INT I = рік + 1; i < end; i )
    if (i % 400 == 0 || i % 4 == 0) підсумувати ++;//в вікіпедії написано, що в Григоріанському календарі високосний рік кожен 4й + кожен 400й
    if ((рік % 400 == 0 || рік % 4 == 0) && місяць < 4) підсумувати ++; //початковий рік перевіряю окремо, т.к. навіть якщо він високосний, ми можемо не зачепити 29февраля в період
    cout << "\nВ этом промежутке " << sum << "дней!";
    return 0;
    }
    [/код]

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *