Tôi có mã tạo khoảng thời gian để tính thời lượng của một số hành động. Điều tôi muốn làm là lấy kết quả đó (thời lượng) và chia cho một số, bất kỳ số nào.Phân chia thời gian theo số
Tôi có thể làm như thế nào?
Tôi có mã tạo khoảng thời gian để tính thời lượng của một số hành động. Điều tôi muốn làm là lấy kết quả đó (thời lượng) và chia cho một số, bất kỳ số nào.Phân chia thời gian theo số
Tôi có thể làm như thế nào?
Sử dụng một trong các thuộc tính Total*
của số TimeSpan
là các số.
I.e. nếu bạn đang chạy năm lần lặp lại của một số mã mà bạn đo lường, thì bạn có thể sử dụng
myTimeSpan.TotalMilliseconds/5
để nhận số mili giây trung bình trên mỗi lần lặp lại. Bạn có thể sử dụng Ticks
để lấy giá trị cơ bản và tạo một TimeSpan
mới từ kết quả được chia.
Hoàn toàn, người đàn ông !!! – Oded
TimeSpan ts = ...
TimeSpan result = TimeSpan.FromTicks(ts.Ticks/divisor);
Bạn có thể sử dụng ve của khoảng thời gian ban đầu:
var res = new TimeSpan(origSpan.Ticks/aNumberAnyNumber);
Upvoting vì đó là câu trả lời phân chia số nguyên đầu tiên, trong đó, khi có sẵn, hầu như luôn là lựa chọn tốt hơn. – Ekevoo
Đối với tất cả các nhà phát triển VB.NET tình cờ gặp phải câu trả lời hữu ích này: toán tử phân chia là một bộ phận _integer_, vì vậy hãy sử dụng toán tử \ (dấu gạch chéo ngược) của VB để tránh lỗi _Option Strict On không cho phép chuyển đổi từ 'Double' sang 'Long' _. –
Phụ thuộc vào những gì bạn muốn chia, nhưng giả sử bạn muốn giây, bạn có thể sử dụng totalseconds tài sản.
TimeSpan ts = new TimeSpan(4, 0, 0); //Four hours
MessageBox.Show((ts.TotalSeconds/4).ToString());
Nếu bạn muốn kết thúc với một TimeSpan mới là một phần nhỏ của cái cũ:
TimeSpan now = DateTime.Now.TimeOfDay;
TimeSpan halfOfNow = new TimeSpan(now.Ticks/2);
tôi đã cố gắng đúc, nhưng trình biên dịch trả về một lỗi. Nếu tôi nhận được kết quả là 0.0000000004, tôi muốn chia số đó, cho phép nói, trong 4. Đây chỉ là một ví dụ. – Novak
có thể trùng lặp của [Multiply TimeSpan in .NET] (http://stackoverflow.com/questions/9909086/multiply-timespan-in-net) –