Основы программирования на С++ для начинающих

Задача. Вычислить количество дней между датами.

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

Для практики предлагается два варианта:

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

Приведу свой пример, частично решающий первый упрощенный вариант:

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

Решать можно любым способом, хоть циклом хоть чем-то еще. А вот решение по второму варианту не покажу :) Пусть оно будет домашним заданием. Удачи!

Вопросы задавайте в комментариях

40 thoughts on “Задача. Вычислить количество дней между датами.

  1. помогите пожалуйста написать программу

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

  2. [code]#include “stdafx.h”
    #include
    using namespace std;
    int main()
    {
    int monthM[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    char ch;
    int end, day, month, year, sum = 0;
    setlocale(LC_ALL, “rus”);
    cout <> day >> ch >> month >> ch >> year;
    cout<> end;

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

      1. 1 – Dwa bloki reklamowe i zapowiedzi, ident – 20.07.2010
        Nagranie z wtorku, 20 lipca 2010 r.

      2. Dwa bloki reklamowe i zapowiedzi, ogłoszenie społecznie i spot, audiotele – 24.09.2008
        Nagranie z środy, 24 września 2008 r.

    1. 2 – Dwa bloki reklamowe i zapowiedzi, ogłoszenie społecznie i spot, audiotele – 24.04.2012
      Nagranie z wtorku, 24 kwietnia 2012 r.

    2. Dwa bloki reklamowe i zapowiedzi, ogłoszenie społecznie i spot, audiotele – 27.11.2009
      Nagranie z piątku, 27 listopada 2009 r.

    3. 2 – Fragmenty bloków reklamowych – 24.10.2011
      Nagranie z poniedziałku, 24 października 2011 r.

      1. Вести (Россия, 20.11.2008)

    4. 1 – Dwa bloki reklamowe i zapowiedzi, ident – 24.12.2000
      Nagranie z niedzieli, 24 grudnia 2000 r.

  3. Программа тв с 10 по 16 октября 2011 г. Г. Кокшетау, Казахстан
    Воскресенье, 16 октября 2011 г.
    Казахстан
    Хабар
    Первый канал Евразия
    Ел-Арна
    Астана
    Казахстан-Кокшетау
    КТК
    НТК
    7 канал
    Асыл арна

  4. ТВ-Программа на неделю 29.05.2011, вс
    Казахстан
    Хабар
    Ел-Арна
    Первый канал Евразия
    КТК
    НТК
    31 канал
    Первый канал
    Россия 1
    НТВ
    РЕН-ТВ

  5. Программа ТВ с 21 по 27 марта 2011 г. Г. Кокшетау, Казахстан
    Четверг, 24 марта 2011 г.
    Казахстан
    Хабар
    Первый канал Евразия
    Ел-Арна
    Астана
    Казахстан-Кокшетау
    КТК
    НТК
    31 канал
    7 канал
    СТВ
    Hit TV
    Асыл арна

  6. ТВ-Программа казахстанская правда на неделю 10.02.2012, пт
    Казахстан
    Хабар
    Ел-Арна
    Балапан

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *