Уменьшение времени на заданное количество - страница 2

 
Koldun Zloy:

Структура - это не строка!

А что? В какой физической форме хранятся данные структуры, группы, записи? 

 
Aliaksandr Hryshyn:
Так просто отнимите 3 от переменной типа datetime

Почему 3, а не 10 или 24 ? Речь идёт о том, что число, например, секунд может быть рандомным. И нам их нужно, по-любому, обнулить. А далее уже отнять сколько нужно секунд от даты, которая образовалась. Вот в чём смысл.

 
Алексей Тарабанов:

Дык, там уже накрученная структура, автор сам себя загнал в угол. Простые решения теперь не катят. 

Была структура, а уже класс.)

 
Alexey Viktorov:

И в чём проблема? Запустите этот скрипт

и почитайте

В принципе логично. А я лёгких путей не искал, и уже изобрёл велосипед...)

О как!

datetime DateTimeInstance :: minus(const int multiplier, const int tf = SECONDS) {
  switch(tf) {
    case SECONDS:
      return StructToTime(this.m_dtStructure) - multiplier * 1;
    case MINUTES:
      return StructToTime(this.m_dtStructure) - multiplier * m1;
    case HOURS:
      return StructToTime(this.m_dtStructure) - multiplier * h1;
    case DAYS:
      return StructToTime(this.m_dtStructure) - multiplier * d1;
    case WEEKS:
      return StructToTime(this.m_dtStructure) - multiplier * w1;
    case MONTHS:
      return StructToTime(this.m_dtStructure) - multiplier * mn1;
    default:
      return StructToTime(this.m_dtStructure) - multiplier * 1;
  }
}

Сам класс прикрепляю.

Удобство в том, что на момент принятия решения может понадобится, как я выше написал, отнять не количество секунд, а количество минут, дней, недель и тд.

Но, чтобы его написать, мне пришлось внимательно продумать как это будет выглядеть. Влом переписывать такие вещи по несколько раз. Как-нить, можно будет добавить ещё и операцию add()

Файлы:
 
Viktar Dzemikhau:

Была структура, а уже класс.)

Если интересно, выложу.

Дык. я - как собака, всё понимаю, а говорить не умею. Не работаю я с ООП. 

 
Алексей Тарабанов:

А что? В какой физической форме хранятся данные структуры, группы, записи? 

О каких группах идёт речь? Я впервые такое слышу, чтобы кто-то называл структуры - строками. В других языках, с которыми я работал, структур нет. Но воспринимать их нужно как недоклассы, грубо говоря. Почти класс, с некоторыми отличиями. Во-первых, по дефолту у структуры все члены открыты. И тд. Можете почитать об этом на досуге. Может у вас и классы являются строками?

Алексей Тарабанов:

А что? В какой физической форме хранятся данные структуры, группы, записи? 

В байтах..=))

 
Viktar Dzemikhau:

О каких группах идёт речь? Я впервые такое слышу, чтобы кто-то называл структуры - строками. В других языках, с которыми я работал, структур нет. Но воспринимать их нужно как недоклассы, грубо говоря. Почти класс, с некоторыми отличиями. Во-первых, по дефолту у структуры все члены открыты. И тд. Можете почитать об этом на досуге. Может у вас и классы являются строками?

В байтах..=))

Правильно. Хранятся они в виде строк с выравниванием. В байтах. И обрабатываются, как строки. 

 
Алексей Тарабанов:

Правильно. Хранятся они в виде строк с выравниванием. В байтах. И обрабатываются, как строки. 

Да ладно.. Числа тоже как строки обрабатываются? Вы это серьёзно? Минусуются, прибавляются, множаться.. как строки? А это как? :)

 
Viktar Dzemikhau:

Почему 3, а не 10 или 24 ? Речь идёт о том, что число, например, секунд может быть рандомным. И нам их нужно, по-любому, обнулить. А далее уже отнять сколько нужно секунд от даты, которая образовалась. Вот в чём смысл.

Так отнимайте сколько надо.
-60 отнять минуту
-3600 отнять час
-3666 отнять час, минуту и 6 секунд
 
Алексей Тарабанов:

А что? В какой физической форме хранятся данные структуры, группы, записи? 

Это больше похоже на массив.

Только в массиве все элементы должны быть одного типа, а в структуре могут быть разных типов.

Причина обращения: