forked from avh4/time-tracker-for-mac
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTWorkPeriod.m
99 lines (85 loc) · 2.09 KB
/
TWorkPeriod.m
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
//
// TWorkPeriod.m
// Time Tracker
//
// Created by Ivan Dramaliev on 10/18/05.
// Copyright 2005 __MyCompanyName__. All rights reserved.
//
#import "TWorkPeriod.h"
@implementation TWorkPeriod
- (id) init
{
_startTime = nil;
_endTime = nil;
return self;
}
- (void) setStartTime: (NSDate *) startTime
{
[startTime retain];
[_startTime release];
_startTime = startTime;
[self updateTotalTime];
}
- (void) setEndTime: (NSDate *) endTime
{
[endTime retain];
[_endTime release];
_endTime = endTime;
[self updateTotalTime];
}
- (void) updateTotalTime
{
if (_endTime == nil || _startTime == nil) {
_totalTime = 0;
return;
}
double timeInterval = [_endTime timeIntervalSinceDate: _startTime];
_totalTime = (int) timeInterval;
}
- (int) totalTime
{
return _totalTime;
}
- (NSDate *) startTime
{
return _startTime;
}
- (NSDate *) endTime
{
return _endTime;
}
- (void)encodeWithCoder:(NSCoder *)coder
{
//[super encodeWithCoder:coder];
if ( [coder allowsKeyedCoding] ) {
[coder encodeObject:_startTime forKey:@"WPStartTime"];
[coder encodeObject:_endTime forKey:@"WPEndTime"];
} else {
[coder encodeObject:_startTime];
[coder encodeObject:_endTime];
}
return;
}
- (id)initWithCoder:(NSCoder *)coder
{
//self = [super initWithCoder:coder];
if ( [coder allowsKeyedCoding] ) {
// Can decode keys in any order
_startTime = [[coder decodeObjectForKey:@"WPStartTime"] retain];
_endTime = [[coder decodeObjectForKey:@"WPEndTime"] retain];
} else {
// Must decode keys in same order as encodeWithCoder:
_startTime = [[coder decodeObject] retain];
_endTime = [[coder decodeObject] retain];
}
[self updateTotalTime];
return self;
}
@end
// This initialization function gets called when we import the Ruby module.
// It doesn't need to do anything because the RubyCocoa bridge will do
// all the initialization work.
// The rbiphonetest test framework automatically generates bundles for
// each objective-c class containing the following line. These
// can be used by your tests.
void Init_TWorkPeriod() { }