@@ -27,19 +27,14 @@ namespace System
27
27
public readonly struct TimeSpan : IComparable , IComparable < TimeSpan > , IEquatable < TimeSpan > , IFormattable , ISpanFormattable
28
28
{
29
29
public const long TicksPerMillisecond = 10000 ;
30
- private const double MillisecondsPerTick = 1.0 / TicksPerMillisecond ;
31
30
32
31
public const long TicksPerSecond = TicksPerMillisecond * 1000 ; // 10,000,000
33
- private const double SecondsPerTick = 1.0 / TicksPerSecond ; // 0.0000001
34
32
35
33
public const long TicksPerMinute = TicksPerSecond * 60 ; // 600,000,000
36
- private const double MinutesPerTick = 1.0 / TicksPerMinute ; // 1.6666666666667e-9
37
34
38
35
public const long TicksPerHour = TicksPerMinute * 60 ; // 36,000,000,000
39
- private const double HoursPerTick = 1.0 / TicksPerHour ; // 2.77777777777777778e-11
40
36
41
37
public const long TicksPerDay = TicksPerHour * 24 ; // 864,000,000,000
42
- private const double DaysPerTick = 1.0 / TicksPerDay ; // 1.1574074074074074074e-12
43
38
44
39
private const int MillisPerSecond = 1000 ;
45
40
private const int MillisPerMinute = MillisPerSecond * 60 ; // 60,000
@@ -118,19 +113,19 @@ public int Seconds
118
113
119
114
public double TotalDays
120
115
{
121
- get { return ( ( double ) _ticks ) * DaysPerTick ; }
116
+ get { return ( ( double ) _ticks ) / TicksPerDay ; }
122
117
}
123
118
124
119
public double TotalHours
125
120
{
126
- get { return ( double ) _ticks * HoursPerTick ; }
121
+ get { return ( double ) _ticks / TicksPerHour ; }
127
122
}
128
123
129
124
public double TotalMilliseconds
130
125
{
131
126
get
132
127
{
133
- double temp = ( double ) _ticks * MillisecondsPerTick ;
128
+ double temp = ( double ) _ticks / TicksPerMillisecond ;
134
129
if ( temp > MaxMilliSeconds )
135
130
return ( double ) MaxMilliSeconds ;
136
131
@@ -143,12 +138,12 @@ public double TotalMilliseconds
143
138
144
139
public double TotalMinutes
145
140
{
146
- get { return ( double ) _ticks * MinutesPerTick ; }
141
+ get { return ( double ) _ticks / TicksPerMinute ; }
147
142
}
148
143
149
144
public double TotalSeconds
150
145
{
151
- get { return ( double ) _ticks * SecondsPerTick ; }
146
+ get { return ( double ) _ticks / TicksPerSecond ; }
152
147
}
153
148
154
149
public TimeSpan Add ( TimeSpan ts )
@@ -238,10 +233,10 @@ private static TimeSpan Interval(double value, double scale)
238
233
{
239
234
if ( double . IsNaN ( value ) )
240
235
throw new ArgumentException ( SR . Arg_CannotBeNaN ) ;
241
- double millis = value * scale ;
242
- if ( ( millis > long . MaxValue ) || ( millis < long . MinValue ) )
236
+ double ticks = value * scale ;
237
+ if ( ( ticks > long . MaxValue ) || ( ticks < long . MinValue ) )
243
238
throw new OverflowException ( SR . Overflow_TimeSpanTooLong ) ;
244
- return new TimeSpan ( ( long ) millis ) ;
239
+ return new TimeSpan ( ( long ) ticks ) ;
245
240
}
246
241
247
242
public static TimeSpan FromMilliseconds ( double value )
0 commit comments