Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для katua18
4 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 68

Перевести с консоли на формы и доработать класс временных меток

01.09.2014, 12:35. Показов 985. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Помогите пожалуйста переделать программу на C++ Builder?
Вложения
Тип файла: rar datttte.rar (3.59 Мб, 16 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2014, 12:35
Ответы с готовыми решениями:

Перевести с консоли в формы в C++ Builder
Перевести в режим Form из консольного режима в C++ Builder #include <vcl.h> #pragma hdrstop #include <iostream.h> #include...

Срез данных временных меток в Unix
Имеется таблица id|time_create(int)|data(float) В нее пишется значение каждые 10 секунд. Время записывается в формате unix. Как...

Использование временнЫх меток файлов/папок в Windows
сюжет:существует масса задач, в которых требуется выполнять операции с файлами, в зависимости от даты/времени: в папке появились новые...

10
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
01.09.2014, 12:47
Может просто скажете что необходимо сделать? и Вам подскажут с реализацией на c++ Builder
0
 Аватар для katua18
4 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 68
01.09.2014, 13:04  [ТС]
Помогите пожалуйста переделать эту программу
C++
1
2
3
4
5
6
7
8
9
datee.h
class CTimestamp{
public:
    int m_days, m_hours, m_minutes, m_seconds;       
    CTimestamp(int d, int h, int m, int s) : m_days(d), m_hours(h), m_minutes(m), m_seconds(s) {}
    void initialize();
    CTimestamp& operator + (const CTimestamp& date) const;
    //friend std::ostream& operator << (std::ostream& os, const CTimestamp& dt);
};

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
.cpp
#include <iostream>
#include"datee.h"
  
 
 
void CTimestamp::initialize(){
    std::cout << std::endl << "Введите временную отметку" << std::endl;
    std::cout << "дни  - ";    std::cin >> m_days;        m_days = abs(m_days); 
    std::cout << "часы - ";    std::cin >> m_hours;      m_hours = abs(m_hours % 24);
    std::cout << "минуты - ";  std::cin >> m_minutes;  m_minutes = abs(m_minutes % 60);
    std::cout << "секунды - ";  std::cin >> m_seconds;  m_seconds = abs(m_seconds % 60);
}
 
CTimestamp& CTimestamp::operator + (const CTimestamp& date) const{
        CTimestamp result(0, 0, 0, 0);
        int rest, delta;
 
        rest = (m_seconds + date.m_seconds) % 60;
        delta = (m_seconds + date.m_seconds) / 60;
        result.m_seconds = rest;
 
        rest = (m_minutes + date.m_minutes + delta) % 60;
        delta = (m_minutes + date.m_minutes + delta) / 60;
        result.m_minutes = rest;
 
        rest = (m_hours + date.m_hours + delta) % 24;
        delta = (m_hours + date.m_hours + delta) / 24;
        result.m_hours = rest;
 
        result.m_days = (m_days + date.m_days + delta);
        
        return result;
    }
 
std::ostream& operator << (std::ostream& out, const CTimestamp& date)//edited
{
    out << date.m_days << "d " 
        << date.m_hours << "h " 
        << date.m_minutes << "m " 
        << date.m_seconds << "s";
    return out;
}
 
 
 
int main() { 
    setlocale(LC_ALL,"");
    CTimestamp date1(11, 22, 12, 5), 
         date2(7, 11, 6, 22);
 
    CTimestamp date3 = date1 + date2;
    std::cout << date1 << " + " << date2 << " = " << date3 << std::endl;
 
    date1.initialize();
    date2.initialize(); 
    date3 = date1 + date2;
    std::cout << date1 << " + " << date2 << " = " << date3 << std::endl;
 
    system("pause");
}
под это условие:
Найти временную отметку (в днях, часах, минутах, секундах).Результат представить в виде строки в виде вещественного числа, указывающего, сколько дней прошло (например, 3.6 дня = 3 дня 14 часов 24 минуты 0 секунд). Имя класса: Ctimestamp; исходное данное: строка в формате DDD HH:MM:SS; Имя метода для установки исходного данного: SetTS; Имена полей, в которых хранятся исходные данные: m_days, m_hours, m_minutes, m_seconds; результат: строка в формате DDD HH:MM:SS double; прототип метода, который будет выполнять действие: void AddTimestamp; имя метода для взятия результата: Get AsString, Get AsDouble; имена объектов: ts1, ts2.
Перегрузка операторов
+ бинарный дружественный оператор аналогично AddTimestamp. Как правый агрумент – объект класса Timestamp;
++ унарный оператор класса аналогично AddTimestamp (0,1,0,0)
C++ Builder
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
01.09.2014, 13:21
Цитата Сообщение от katua18 Посмотреть сообщение
Помогите пожалуйста переделать эту программу
Вам скорее всего надо сделать к этой программе визуальный интерфейс?
0
 Аватар для katua18
4 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 68
01.09.2014, 13:24  [ТС]
И интерфейс тоже нужен. Помогите пожалуйста!
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
01.09.2014, 13:25
Цитата Сообщение от katua18 Посмотреть сообщение
И интерфейс тоже нужен
А что нужно помимо интерфейса еще?
0
 Аватар для katua18
4 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 68
02.09.2014, 09:56  [ТС]
Программа на делфи, перевести на С++Builder
Delphi
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DateUtils, StdCtrls, Mask;
 
type
  TForm1 = class(TForm)
  GroupBox1: TGroupBox;
  Label1: TLabel;
  Button1: TButton;
  Edit1: TEdit;
  Label2: TLabel;
  Button2: TButton;
  MaskEdit1: TMaskEdit;
  Button3: TButton;
  Button4: TButton;
  GroupBox2: TGroupBox;
  Label3: TLabel;
  Label4: TLabel;
  Button5: TButton;
  Edit2: TEdit;
  Button6: TButton;
  MaskEdit2: TMaskEdit;
  Button7: TButton;
  Button8: TButton;
  Label5: TLabel;
  Edit3: TEdit;
  Label6: TLabel;
  Edit4: TEdit;
procedure Button3Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
    { Private declarations }
public
    { Public declarations }
end;
 
  TTimeStamp = class
  m_days, m_hours, m_minutes, m_seconds: Word;
constructor Create(TemporalMark:String);
Function StrToDateTime(TemporalMark:String;Var Days,Hours,Minutes,Seconds:Word):Boolean;
Function SetTS(TemporalMark:String):Boolean;
Function AddTimestamp(AddTemporal:String):Boolean;
Function GetTSAsString:String;
Function GetTSAsDouble:Double;
 
end;
 
var
  Form1: TForm1;
  TS1 : TTimeStamp = NIL;
  TS2 : TTimeStamp = NIL;
 
implementation
 
  {$R *.dfm}
 
constructor TTimestamp.Create(TemporalMark:String);
begin
Inherited Create;
  m_days:=0;
  m_hours:=0;
  m_minutes:=0;
  m_seconds:=0;
 
  SetTS(TemporalMark);
end;
 
Function TTimestamp.StrToDateTime(TemporalMark:String;Var Days,Hours,Minutes,Seconds:Word):Boolean;
Var
  i : Integer;
Begin
 
  Val(Copy(TemporalMark,1,3),Days,i);
  Result:=i=0;
If Not Result Then Exit; 
 
  Val(Copy(TemporalMark,5,2),Hours,i);
  Result:=i=0;
If Not Result Then Exit; 
  
  Val(Copy(TemporalMark,8,2),Minutes,i);
  Result:=i=0;
If Not Result Then Exit; 
 
  Val(Copy(TemporalMark,11,2),Seconds,i);
  Result:=i=0;
End;
 
Function TTimestamp.SetTS(TemporalMark:String):Boolean;
Var
  Days,Hours,Minutes,Seconds : Word;
begin
 
  Result:=StrToDateTime(TemporalMark,Days,Hours,Minutes,Seconds);
  If Not Result Then Exit; 
  m_days:=Days;
  m_hours:=Hours;
  m_minutes:=Minutes;
  m_seconds:=Seconds;
end;
 
Function TTimestamp.AddTimestamp(AddTemporal:String):Boolean;
Var
  Days,Hours,Minutes,Seconds : Word;
begin
 
  Result:=StrToDateTime(AddTemporal,Days,Hours,Minutes,Seconds);
If Not Result Then Exit; 
 
  m_days:=m_days+Days;
  m_hours:=m_hours+Hours;
  m_minutes:=m_minutes+Minutes;
  m_seconds:=m_seconds+Seconds;
  m_minutes:=m_minutes+(m_seconds Div 60);
  m_seconds:=m_seconds Mod 60;
  m_hours:=m_hours+(m_minutes Div 60);
  m_minutes:=m_minutes Mod 60;
  m_days:=m_days+(m_hours Div 24);
  m_hours:=m_hours Mod 24;
end;
 
Function TTimestamp.GetTSAsString:String;
begin
  Result:=Format('%.3d %.2d:%.2d:%.2d',[m_days, m_hours, m_minutes, m_seconds]);
end;
 
Function TTimestamp.GetTSAsDouble:Double;
begin
  Result:=m_days+(m_hours/24)+(m_minutes/(24*60))+(m_seconds/(24*60*60));
end;
//(TS1)
procedure TForm1.Button3Click(Sender: TObject);
begin
If Assigned(TS1) Then
  ShowMessage('Объект уже создан!!!') Else
Begin
  TS1:=TTimeStamp.Create(MaskEdit1.Text);
  Edit1.Text:=TS1.GetTSAsString;
  Edit3.Text:=Format('%6.2f',[TS1.GetTSAsDouble]);
End;
end;
 
// (TS2)
procedure TForm1.Button7Click(Sender: TObject);
begin
If Assigned(TS2) Then
  ShowMessage('Объект уже создан!!!') Else
Begin
  TS2:=TTimeStamp.Create(MaskEdit2.Text);
  Edit2.Text:=TS2.GetTSAsString;
  Edit4.Text:=Format('%6.2f',[TS2.GetTSAsDouble]);
End;
end;
 
// (TS1)
procedure TForm1.Button1Click(Sender: TObject);
begin
If Assigned(TS1) Then
Begin
If TS1.SetTS(MaskEdit1.Text) Then
Begin
  Edit1.Text:=TS1.GetTSAsString;
  Edit3.Text:=Format('%6.2f',[TS1.GetTSAsDouble]);
End Else
  ShowMessage('Заданное значение не корректно!!!');
End Else
  ShowMessage('Объект не создан!!!');
end;
 
// (TS2)
procedure TForm1.Button5Click(Sender: TObject);
begin
If Assigned(TS2) Then
Begin
If TS2.SetTS(MaskEdit2.Text) Then
Begin
  Edit2.Text:=TS2.GetTSAsString;
  Edit4.Text:=Format('%6.2f',[TS2.GetTSAsDouble]);
End Else
  ShowMessage('Заданное значение не корректно!!!');
End Else
  ShowMessage('Объект не создан!!!');
end;
 
// (TS1)
procedure TForm1.Button2Click(Sender: TObject);
begin
If Assigned(TS1) Then
Begin
If TS1.AddTimestamp(MaskEdit1.Text) Then
Begin
  Edit1.Text:=TS1.GetTSAsString;
  Edit3.Text:=Format('%6.2f',[TS1.GetTSAsDouble]);
End Else
  ShowMessage('Заданное значение не корректно!!!');
End Else
  ShowMessage('Объект не создан!!!');
end;
 
//(TS2)
procedure TForm1.Button6Click(Sender: TObject);
begin
If Assigned(TS2) Then
Begin
If TS2.AddTimestamp(MaskEdit2.Text) Then
Begin
  Edit2.Text:=TS2.GetTSAsString;
  Edit4.Text:=Format('%6.2f',[TS2.GetTSAsDouble]);
End Else
  ShowMessage('Заданное значение не корректно!!!');
End Else
  ShowMessage('Объект не создан!!');
end;
 
// (TS1)
procedure TForm1.Button4Click(Sender: TObject);
begin
If Assigned(TS1) Then
Begin
  FreeAndNil(TS1);
  ShowMessage('Объект удален!');
End Else
  ShowMessage('Объект не создан!!!');
end;
 
// (TS2)
procedure TForm1.Button8Click(Sender: TObject);
begin
If Assigned(TS2) Then
Begin
  FreeAndNil(TS2);
  ShowMessage('Объект удален');
End Else
  ShowMessage('Объект не создан!!!');
end;
end.
0
02.09.2014, 10:04

Не по теме:

Только надо еще призвать профессионалов перевода с Делфи в Билдер
:wizard: UI приди....SatanaXIII, D1973 придите :)

0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
02.09.2014, 13:44
Ладушки. Раз сам demon_7 взывает.


Unit1.h
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Mask.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TGroupBox *GroupBox1;
        TButton *BCreate1;
        TButton *BDelete1;
        TButton *BAddTimestamp1;
        TButton *BSetTS1;
        TLabel *Label1;
        TEdit *Edit1;
        TEdit *Edit2;
        TMaskEdit *MaskEdit1;
        TGroupBox *GroupBox2;
        TLabel *Label2;
        TButton *BCreate2;
        TButton *BDelete2;
        TButton *BAddTimestamp2;
        TButton *BSetTS2;
        TEdit *Edit3;
        TEdit *Edit4;
        TMaskEdit *MaskEdit2;
        void __fastcall BCreate1Click(TObject *Sender);
        void __fastcall BDelete1Click(TObject *Sender);
        void __fastcall BAddTimestamp1Click(TObject *Sender);
        void __fastcall BSetTS1Click(TObject *Sender);
        void __fastcall BCreate2Click(TObject *Sender);
        void __fastcall BDelete2Click(TObject *Sender);
        void __fastcall BAddTimestamp2Click(TObject *Sender);
        void __fastcall BSetTS2Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Unit1.cpp
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "TTimestamp.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TTimestamp *TS1 = NULL,
           *TS2 = NULL;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ 
    Label1->Caption = "Result1:"; // Забыл в проекте
    Label1->Caption = "Result2:"; //  заархивированном прилепить
}
//---------------------------------------------------------------------------
//(TS1)
void __fastcall TForm1::BCreate1Click(TObject *Sender)
{
    if( TS1 )
        ShowMessage( "Объект уже создан!!!" );
    else
        {
        TS1 = new TTimestamp( MaskEdit1->Text );
        Edit1->Text = TS1->GetTSAsString();
        Edit2->Text = String().sprintf( "%6.2f", TS1->GetTSAsDouble() );
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BDelete1Click(TObject *Sender)
{
    if( TS1 )
        {
        delete TS1; TS1 = NULL;
        ShowMessage( "Объект удален!" );
        }
    else
        ShowMessage( "Объект не создан!!!" );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BAddTimestamp1Click(TObject *Sender)
{
    if( TS1 )
        if( TS1->AddTimestamp( MaskEdit1->Text ) )
            {
            Edit1->Text = TS1->GetTSAsString();
            Edit2->Text = String().sprintf( "%6.2f", TS1->GetTSAsDouble() );
            }
        else
            ShowMessage( "Заданное значение не корректно!!!" );
    else
        ShowMessage( "Объект не создан!!!" );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BSetTS1Click(TObject *Sender)
{
    if( TS1 )
        if( TS1->SetTS( MaskEdit1->Text ) )
            {
            Edit1->Text = TS1->GetTSAsString();
            Edit2->Text = String().sprintf( "%6.2f", TS1->GetTSAsDouble() );
            }
        else
            ShowMessage( "Заданное значение не корректно!!!" );
    else
        ShowMessage( "Объект не создан!!!" );
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//(TS2)
void __fastcall TForm1::BCreate2Click(TObject *Sender)
{
    if( TS2 )
        ShowMessage( "Объект уже создан!!!" );
    else
        {
        TS2 = new TTimestamp( MaskEdit2->Text );
        Edit3->Text = TS2->GetTSAsString();
        Edit4->Text = String().sprintf( "%6.2f", TS2->GetTSAsDouble() );
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BDelete2Click(TObject *Sender)
{
    if( TS2 )
        {
        delete TS2; TS2 = NULL;
        ShowMessage( "Объект удален!" );
        }
    else
        ShowMessage( "Объект не создан!!!" );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BAddTimestamp2Click(TObject *Sender)
{
    if( TS2 )
        if( TS2->AddTimestamp( MaskEdit2->Text ) )
            {
            Edit3->Text = TS2->GetTSAsString();
            Edit4->Text = String().sprintf( "%6.2f", TS2->GetTSAsDouble() );
            }
        else
            ShowMessage( "Заданное значение не корректно!!!" );
    else
        ShowMessage( "Объект не создан!!!" );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BSetTS2Click(TObject *Sender)
{
    if( TS2 )
        if( TS2->SetTS( MaskEdit2->Text ) )
            {
            Edit3->Text = TS2->GetTSAsString();
            Edit4->Text = String().sprintf( "%6.2f", TS2->GetTSAsDouble() );
            }
        else
            ShowMessage( "Заданное значение не корректно!!!" );
    else
        ShowMessage( "Объект не создан!!!" );
}
//---------------------------------------------------------------------------

TTimestamp.h
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
//---------------------------------------------------------------------------
 
#ifndef TTimestampH
#define TTimestampH
 
#include <vcl.h>
//---------------------------------------------------------------------------
class TTimestamp
{
private:
    int m_days, m_hours, m_minutes, m_seconds;
public:
    TTimestamp( String TemporalMark );
    bool StrToDateTime( String TemporalMark, int &Days,
                                             int &Hours,
                                             int &Minutes,
                                             int &Seconds );
    bool SetTS( String TemporalMark );
    bool AddTimestamp( String AddTemporal );
    String GetTSAsString();
    double GetTSAsDouble();
};
//---------------------------------------------------------------------------
#endif

TTimestamp.cpp
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
82
83
84
85
86
87
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
#include "TTimestamp.h"
 
//---------------------------------------------------------------------------
TTimestamp::TTimestamp( String TemporalMark )
{
    m_days  = 0;
    m_hours = 0;
    m_minutes   = 0;
    m_seconds   = 0;
 
    SetTS(TemporalMark);
}
//---------------------------------------------------------------------------
bool TTimestamp::StrToDateTime( String TemporalMark, int &Days,
                                                     int &Hours,
                                                     int &Minutes,
                                                     int &Seconds )
{
    if( !TryStrToInt( TemporalMark.SubString( 1, 3 ), Days ) )
        return false;
 
    if( !TryStrToInt( TemporalMark.SubString( 5, 2 ), Hours ) )
        return false;
 
    if( !TryStrToInt( TemporalMark.SubString( 8, 2 ), Minutes ) )
        return false;
 
    if( !TryStrToInt( TemporalMark.SubString( 11, 2 ), Seconds ) )
        return false;
 
    return true;
}
//---------------------------------------------------------------------------
bool TTimestamp::SetTS( String TemporalMark )
{
    int Days, Hours, Minutes, Seconds;
 
    if( !StrToDateTime( TemporalMark, Days, Hours, Minutes, Seconds ) )
        return false;
 
    m_days      = Days;
    m_hours     = Hours;
    m_minutes   = Minutes;
    m_seconds   = Seconds;
 
    return true;
}
//---------------------------------------------------------------------------
bool TTimestamp::AddTimestamp( String AddTemporal )
{
    int Days, Hours, Minutes, Seconds;
 
    if( !StrToDateTime( AddTemporal, Days, Hours, Minutes, Seconds ) )
        return false;
 
    m_days      += Days;
    m_hours     += Hours;
    m_minutes   += Minutes;
    m_seconds   += Seconds;
    m_minutes   += m_seconds % 60;
    m_seconds   /= 60;
    m_hours     += m_minutes % 60;
    m_minutes   /= 60;
    m_days      += m_hours % 24;
    m_hours     /= 24;
 
    return true;
}
//---------------------------------------------------------------------------
String TTimestamp::GetTSAsString()
{
    TVarRec args[4] = { m_days, m_hours, m_minutes, m_seconds }; // Чисто поржать
    return Format( L"%.3d %.2d:%.2d:%.2d", args, 4 );
//  return String().sprintf( L"%.3d %.2d:%.2d:%.2d", m_days, m_hours, m_minutes, m_seconds );
}
//---------------------------------------------------------------------------
double TTimestamp::GetTSAsDouble()
{
    return  m_days + 
            static_cast<double>( m_hours )/24 +
            static_cast<double>( m_minutes )/(24*60)  +
            static_cast<double>( m_seconds )/(24*60*60);
}
//---------------------------------------------------------------------------


Под шестую борланду: TTimestamp.rar
2
 Аватар для katua18
4 / 0 / 1
Регистрация: 25.10.2013
Сообщений: 68
02.09.2014, 16:50  [ТС]
Например вводим 115 20:10:35 + 001 02:03:05 должно получиться = 116 22:13:40, а она считает 119 03:00:00....((((
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
03.09.2014, 04:18
katua18, есть небольшой косячок в функции сложения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool TTimestamp::AddTimestamp( String AddTemporal )
{
    int Days, Hours, Minutes, Seconds;
 
    if( !StrToDateTime( AddTemporal, Days, Hours, Minutes, Seconds ) )
        return false;
 
    m_days      += Days;
    m_hours     += Hours;
    m_minutes   += Minutes;
    m_seconds   += Seconds;
    m_minutes   += m_seconds / 60;
    m_seconds   %= 60;
    m_hours     += m_minutes / 60;
    m_minutes   %= 60;
    m_days      += m_hours / 24;
    m_hours     %= 24;
 
    return true;
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.09.2014, 04:18
Помогаю со студенческими работами здесь

Доработать класс Итератор
1. Добавить в класс Iterator некоторые функции, аналогичные имеющимся (перегрузка предекремента и постдекремента, перегрузка -=, вычитание...

доработать класс String
Занимаюсь по книжке Стивена Праты, никак не могу найти ошибку в программе(написана на Visual C++).Помогите пожалуйста найти что в ней не...

Доработать класс матриц
Всем привет. Пытаюсь разработать класс матриц, чтобы перегрузить основные операции. Помогите доработать. #include &lt;iostream&gt; ...

Перевести с консоли на форму
Пожалуйста помогите перевести программу с консоли на форму

Перевести с консоли на форму
Пожалуйста помогите перевести программу с консоли на форму


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru