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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Пересчитать все слова заданного предложения http://www.cyberforum.ru/cpp-beginners/thread220497.html
Пересчитать все слова заданного предложения , которые состоят из тех же букв, что и первое слово предложения и заканчиваются на такую же букву , что и первое. Язык С++ . Срочно нужно написать.
C++ не получается написать код этой программы -Если первый аргумент командной строки -опция -%d, то распечатать введенное далее вещественное число без точки, указав в скобках число цифр после точки, а если число целое,то число не изменять. если указана -опция -%f, распечатать введенное далее число добавив ".0", вещественное без изменения. Добавлено через 4 часа 43 минуты помогите пожалуйста... одна последняя задача осталась на зачет... а... http://www.cyberforum.ru/cpp-beginners/thread220481.html
C++ Файловый вывод...
struct studs { int evaluation,gr,money,form; char fio; studs*nextstd,*prevstd; }; struct group { int grnum; group*next,*prev;
Обработка массивов C++
Народ помогите пожалуйста ото чет я не понимаю как это на с++ реализовать. Заранее спасибо! 1. Дана стpока символов. Пpизнак конца стpоки - символ '\n' (пеpевод стpоки). Стpока состоит из слов, pазделенных пpобелами. а) Вывести слова, у котоpых пеpвая и последняя буквы одинаковые, и количество таких слов. 2. Дан массив, состоящий из n целых чисел (n<=10). а) Переставить...
C++ Проверить код http://www.cyberforum.ru/cpp-beginners/thread220458.html
Всем здравствуйте. Ребят, не могли бы посмотреть и поправить программу, а то выдает ошибку: Compiling... d:\program files\microsoft visual studio\myprojects\01155\41.cpp(13) : fatal error C1083: Cannot open include file: 'boost/lambda/lambda.hpp': No such file or directory Error executing cl.exe. Вот код программы по заданию:Дана строка символов. Распечатать слова, отличные от...
C++ найти значени выражений Когда обьясняли тему я как раз болел, сам разобратся вообще не могу, а лабу сдать нада, скоро Экзамен... 1 Найти значение выражения Y=7(a/4+2b). Для операций умножения и деления использовать сдвиг влево и вправо. Исходные данные считать из файла А, а результат записать в файл В. 2 Для заданного числа выполнить действия, используя логические побитовые операции. Оформить вывод результата каждой... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
26.12.2010, 12:37     Создать класс Дата
Ну вот тебе почти весь класс, кроме непосредственно расчетов разности и суммы дат.
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};
 
Текущее время: 23:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru