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

Класс time - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Роль палочки http://www.cyberforum.ru/cpp-beginners/thread941467.html
Какую роль играет палочка (\) на конце строк 9-14? #include "stdafx.h" #define DEBUG #include <iostream> using namespace std; #ifndef DEBUG #define ASSERT(x) #else #define ASSERT(x) \
C++ утечки памяти - просто жесть analysis *SP; // объявляем классы SP = new analysis(Edit1->Text); //загружаем данные SP = new analysis(Edit2->Text); //загружаем данные SP->perform_analysis(SP); // проводим анализ //удаляем //delete SP; //delete SP;так вот, что коменчу, что не коменчу delete , память в диспетчере, утекает!! рисует мне какието 60 метров каждый раз! т.е. при нажатии кнопки "вычислить"(кнопка которая... http://www.cyberforum.ru/cpp-beginners/thread941462.html
Вызов одного приложения из других C++
Доброго времени суток дамы (уж если таковые тут имеются) и господа (что более вероятно)! Столкнулся я вот с какой проблемой - приступив к изучению новой для себя темы "Базы данных" нашел на просторах интернета задание, примерно следующего содержания: --Написать key-value storage с основными операциями (CRUD) и радоваться. Проблем это не вызвало и я это сделал на языке программирования C++...
C++ Встроенные макросы
Как заставить работать встроенные макросы? Не отображает! #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { #define _DATE_ #define _TIME_ #define _LINE_
C++ Информационная безопасность и программирование на С++ http://www.cyberforum.ru/cpp-beginners/thread941440.html
Добрый вечер всем) Посоветуйте пожалуйста книжки, статьи, видеоуроки и т.д. про то, как писать антивирусы, фаерволы, средства криптозащиты и т.д. Заранее спасибо.
C++ ошибка в деструкторе при освобождении памяти есть такая вот конструкция у меня в классеpoint*** mesh;а есть ф-ция в класе: for (int i = 1; i < 4; g++) // дада именно с , раньше создан и затем удален {mesh = new point *+1]; for (int j= 0; j< n_razb+1; j++) mesh=new point+1]; } а есть деструктор у этого класса ~analysis() // деструктор { for (int i= 1; i< 4; i++) подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.08.2013, 09:02     Класс time
Клуб любителей некорректно поставить задачу вновь открылся.

Форматирование времени в двенадцати часовом формате имеет смысл, когда мы говорим про некий момент внутри суток.
Сложение и вычитание "времени" имеет смысл, когда мы говорим о некоторых абстрактных промежутках времени.

Совершенно разные пограничные условия и смысл значений.

Как вы себе представляете в двенадцати часовом формате минус тридцать два часа восемнадцать минут? Это что, минус восемь часов утра?

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
74
75
76
77
78
79
80
81
#include <iostream>
#include <iomanip>
#include <cmath>
 
class SimpleTime {
 public:
  SimpleTime() : time(0) {}
  SimpleTime(double time) : time(time) {}
  SimpleTime(int hours, int minutes, double seconds)
    : time(hours * 3600 + minutes * 60 + seconds) {}
  int getHours() const {
    return int(time) / 3600;
  }
  int getMinutes() const {
    return std::abs(int(time) % 3600) / 60;
  }
  double getSeconds() const {
    return std::abs(time) - std::abs(getHours()) * 3600 - getMinutes() * 60;
  }
  double asDouble() const {
    return time;
  }
 private:
  double time;
};
 
SimpleTime operator+(const SimpleTime &a, const SimpleTime &b) {
  return SimpleTime(a.asDouble() + b.asDouble());
}
 
SimpleTime operator-(const SimpleTime &a, const SimpleTime &b) {
  return SimpleTime(a.asDouble() - b.asDouble());
}
 
int compare(const SimpleTime &a, const SimpleTime &b, const double epsilon = 0.00001) {
  return ((std::fabs(a.asDouble() - b.asDouble()) < epsilon) ? 0 :
    (a.asDouble() < b.asDouble()) ? -1 : 1);
}
 
bool operator==(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) == 0;
}
 
bool operator!=(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) != 0;
}
 
bool operator<(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) < 0;
}
 
bool operator>(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) > 0;
}
 
bool operator<=(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) <= 0;
}
 
bool operator>=(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) >= 0;
}
 
std::ostream &operator<<(std::ostream &stream, const SimpleTime &time) {
  int hours = time.getHours();
  return stream <<
    std::setfill('0') << std::setw(2) <<
    ((hours % 12 == 0) ? 12 : hours % 12) << ":" << 
    std::setfill('0') << std::setw(2) <<
    time.getMinutes() << ":" << 
    std::setfill('0') << std::setw(6) <<
    std::fixed << std::setprecision(3) <<
    time.getSeconds() << " " <<
    ((hours % 24 >= 12) ? "pm" : "am");
    
}
 
int main(int, char**) {
  std::cout << (SimpleTime(-18, -1, -0.54) + SimpleTime(-32, -18, -10)) << std::endl;
  std::cout << (SimpleTime(-18, -1, -0.54) > SimpleTime(-32, -18, -10)) << std::endl;
}
 
Текущее время: 20:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru