Форум программистов, компьютерный форум CyberForum.ru

Создать класс Дата - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Xotos
Сообщений: n/a
26.12.2010, 11:35     Создать класс Дата #1
Нужно создать класс date, задать день, месяц и год, создать конструктор. Перегрузить операторы вычитания двух дат (-), сравнение дат и. В основной процедуре произвольно создаются даты d1 и d2. И с помощью перегруженных операторов нужно найти возраст каждого события на 01/06/07.

Помогите плз !!! Хоть чуть-чуть

 Комментарий модератора 
Дублирование тем запрещено правилами форума (п. 3.4). Не плодите одинаковых тем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 11:35     Создать класс Дата
Посмотрите здесь:

C++ Описать класс Дата
Создать класс Date – дата, содержащая поля: день, месяц, год. C++
C++ класс дата
Дата класс C++
Создать класс "Дата" с конструкторами, деструктором, указанными методами. Выполнить перегрузку указанных операторов C++
C++ Из класса "Дата" с полями день, месяц, год создать класс "Время" с дополнительными полями час, минута, секунда
C++ Разработать класс Дата
Класс Триада, Дата и Время C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
26.12.2010, 12:37     Создать класс Дата #2
Ну вот тебе почти весь класс, кроме непосредственно расчетов разности и суммы дат.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <cassert>
 
class Date {
 public:
  Date(void) : year_(0), month_(1), day_(1) {}
  Date(int year, int month, int day) : year_(0), month_(1), day_(1) {
    SetDate(year, month, day);
  }
  void SetDate(int year, int month, int day) {
    set_year(year);
    set_month(month);
    set_day(day);
  }
  inline int year() const { return year_; }
  inline int month() const { return month_; }
  inline int day() const { return day_; }
  inline void set_year(int new_year) { year_ = new_year; }
  // месяцы задаются от 1 до 12
  void set_month(int new_month) {
    assert(new_month < 13 && new_month > 0);
    month_ = new_month;
  }
  // дни задаются от 1 до 31
  void set_day(int new_day) {
    assert(new_day <= kDaysInMonth[month_]);
    if (month_ == 2 && day_ == 29)
      if (IsLeapYear()) {
        assert(new_day < kDaysInMonth[2] - 1);
      }
    day_ = new_day;
  }
  // проверка на високосный год
  inline bool IsLeapYear() const {
    return ((year_ % 4 == 0 && year_ % 100 != 0) || year_ % 400);
  }
 
  // возвращает отрицательное число, если дата меньше другой,
  // положительное, если больше
  // ноль если даты равны
  int CompareDate(const Date &other) const {
    if (year() != other.year())
      return year() - other.year();
    if (month() != other.month())
      return month() - other.month();
    return day() - other.day();
  }
  inline bool operator==(const Date &other) { return CompareDate(other) == 0; }
  inline bool operator!=(const Date &other) { return CompareDate(other) != 0; }
  inline bool operator<(const Date &other) { return CompareDate(other) < 0; }
  inline bool operator<=(const Date &other) { return CompareDate(other) <= 0; }
  inline bool operator>(const Date &other) { return CompareDate(other) > 0; }
  inline bool operator>=(const Date &other) { return CompareDate(other) >= 0; }
 
  Date operator-(const Date &other) const {
    Date result;
    // TODO(получатель): добавить код вычисления result = *this - other
    // нужны проверки, которые мне делать лень;
    // например, если из 1 марта вычесть 31 день,
    // получится 29 (или 30?) января.
    return result;
  }
  Date operator+(const Date &other) const {
    Date result;
    // TODO(получатель): добавить код вычисления result = *this + other
    return result;
  }
  static const int kDaysInMonth[12];
 private:
  int year_, month_, day_;
};
 
const int Date::kDaysInMonth[12] =
          {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Yandex
Объявления
26.12.2010, 12:37     Создать класс Дата
Ответ Создать тему
Опции темы

Текущее время: 04:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru