Tôi tin rằng vấn đề là bạn đang chia cho Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
4, điều này sẽ cắt bớt (bỏ đi) vị trí thập phân của kết quả, sau đó bạn đang nhân với Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
4, có nghĩa là bạn luôn tính đến khoảng thời gian 5 phút gần nhất, đúng hơn là Trước tiên, bạn cần truyền Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
4 thành Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
7/Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
8 để phép chia trở thành phép chia dấu phẩy động và phần thập phân của kết quả được giữ lại. Sau đó, bạn có bội số của "5 phút" được biểu thị dưới dạng phân số, sau đó bạn có thể làm tròn số này bằng cách sử dụng Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
9 để làm tròn số đó lên hoặc xuống (bất kỳ số nào gần nhất), rồi cuối cùng nhân số đó với Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
4 để có kết quả cuối cùngHy vọng rằng đó là những gì bạn đang giải thích trong câu hỏi của mình - Tôi đã xác minh nó bằng một số kết quả mong đợi của bạn class Program {
static void Main(string[] args) {
var tests = new (DateTime Input, string Output)[] {
(new DateTime(2021, 10, 14, 13, 51, 00), "14/10/2021 13:50:00"),
(new DateTime(2021, 10, 14, 13, 53, 00), "14/10/2021 13:55:00"),
(new DateTime(2021, 10, 14, 16, 31, 00), "14/10/2021 16:30:00"),
(new DateTime(2021, 10, 14, 19, 47, 00), "14/10/2021 19:45:00"),
(new DateTime(2021, 10, 14, 11, 29, 00), "14/10/2021 11:30:00"),
(new DateTime(2021, 10, 14, 10, 01, 00), "14/10/2021 10:00:00"),
(new DateTime(2021, 10, 14, 18, 35, 00), "14/10/2021 18:35:00")
};
DateTime Round(DateTime date, TimeSpan interval) {
return new DateTime(
(long)Math.Round(date.Ticks / (double)interval.Ticks) * interval.Ticks
);
}
var interval = TimeSpan.FromMinutes(5);
foreach (var (Input, Output) in tests) {
var actual = Round(Input, interval).ToString();
var expected = Output;
Console.WriteLine($"Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
}
}
}
15 Hiển thị nhận xét cho câu trả lời này Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T15. 30. 11. 087+00. 00 Trong kết quả, nó hiển thị giống nhau ở bên trái và bên phải. Làm cách nào để hiển thị bên trái ngày giờ kiểm tra và bên trái là kết quả Kết quả là Thực tế và Dự kiến là như nhau Làm cách nào tôi có thể hiển thị ngày giờ trước khi thay đổi ở phía bên trái? Để hiển thị ở cùng định dạng như ở bên phải nhưng ngày và giờ trước khi thay đổi. 2021, 10, 14, 13, 51, 00 và 2021, 10, 14, 13, 53, 00 Để hiển thị chúng như thực tế 0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T16. 22. 20. 357+00. 00 Bạn chỉ có thể bao gồm public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
1Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
0 {count} phiếu bầu Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T16. 53. 37. 237+00. 00 xin hỏi câu cuối. Nó đang hoạt động nhưng nếu tôi muốn tạo số lượng thời gian ngày ngẫu nhiên thì sao? Tôi đang sử dụng phương pháp này để tạo ngẫu nhiên ________số 8_______Ví dụ 100 và nó tạo ra 100 ngày Nhưng tôi không chắc đó có phải là định dạng giống như bạn đang sử dụng hay không và cách sử dụng nó với mã của bạn? 0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T17. 04. 15. 387+00. 00 Chà, phần thịt của đoạn trích tôi đưa vào là DateTime Round(DateTime date, TimeSpan interval) {
return new DateTime(
(long)Math.Round(date.Ticks / (double)interval.Ticks) * interval.Ticks
);
}
Trong phần mã của bạn gọi ____8_______2, bạn có thể tạo một khoảng thời gian cụ thể (_______8_______3 như trong ví dụ ban đầu. ) Sau đó chuyển từng public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
4 vào public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
5var interval = TimeSpan.FromMinutes(5);
foreach (var date in GenerateRandomDates()) {
Console.WriteLine(Round(date, interval));
}
Điều này có nghĩa là bạn sẽ có 100 public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
4 được làm tròn đến 5 phút gần nhất1 1 phiếu bầu Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T17. 15. 19. 947+00. 00 Tuyệt. Điều cuối cùng tôi cố gắng lưu trữ trong câu hỏi ban đầu của mình là Định dạng DateTime. Bây giờ từ ví dụ, thời gian và định dạng hiện tại là. {14/10/2021 14. 28. 45} sau đó định dạng nó thành. 202110141428 không có giây Để chuyển đổi ngày giờ thành int dài ở định dạng như tôi hiển thị. Năm, tháng, ngày, giờ, phút nhưng không phải ngày giờ var interval = TimeSpan.FromMinutes(5);
foreach (var date in GenerateRandomDates(100))
{
datestimes.Add(Round(date, interval));
}
datestimes is List Sau khi tạo Danh sách hoặc trong khi tạo Danh sách, hãy tạo một Danh sách dài int khác với thời gian ngẫu nhiên nhưng miễn là int dài Can I create a List ? 0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T17. 34. 04. 77+00. 00 Bạn có thể định dạng public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
4 sang định dạng đó như thế nàyvar dt = new DateTime(2021, 10, 14, 13, 51, 00);
var formattedDate = dt.ToString("yyyyMMddHHmmss");
Console.WriteLine(formattedDate);
Sau đó, bạn có thể phân tích cú pháp đó thành một public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
8 (xử lý lỗi bị bỏ qua ở đây cho ngắn gọn)var lngDate = long.Parse(formattedDate);
Console.WriteLine(lngDate);
Tôi không chắc liệu có nhiều điểm để chuyển đổi nó thành kiểu dữ liệu số hay không trừ khi có phép tính số học mà bạn định thực hiện với số đó, nhưng đó là cách bạn có thể thực hiện 1 1 phiếu bầu Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T17. 53. 16. 847+00. 00 Lý do tôi muốn chuyển đổi nó là vì tôi có liên kết này https. // trang web của tôi. com/Radar_202110141415. gif Số cuối cùng là ngày tháng theo định dạng tôi muốn. liên kết này đang cập nhật cứ sau 5 phút, ví dụ như liên kết tiếp theo sẽ là https. // trang web của tôi. com/Radar_202110141420. sau đó gif https. // trang web của tôi. com/Radar_202110141425. gif Đây là lý do tại sao trước tiên tôi muốn làm tròn nó và bây giờ tôi muốn định dạng nó thành định dạng số này để tôi có thể xây dựng/các liên kết trong tương lai 0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T18. 00. 23. 72+00. 00 Chắc chắn rồi, trong trường hợp đó, bạn chỉ có thể sử dụng public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
9 thay vì DateTime Round(DateTime date, TimeSpan interval) {
return new DateTime(
(long)Math.Round(date.Ticks / (double)interval.Ticks) * interval.Ticks
);
}
0 trong ví dụ trước của tôi. Nếu nó chỉ là hậu tố cho tên tệp thì nó có thể ở dạng chuỗi0 {count} phiếu bầu Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T18. 00. 37. 227+00. 00 Kết quả sau khi format và convert sang long không phải định dạng mình cần Ngày giờ ban đầu. {08/02/0922 9. 35. 00} Sau khi chuyển đổi nó thành dài. 9220208093643 Và nó phải ở sau cconversion 092202080935 như thế này Radar_202110141415 0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T18. 10. 46. 723+00. 00 Nếu bạn sử dụng cái này thay thế var formattedDate = dt.ToString("yyyyMMddHHmm");
Nó sẽ cung cấp cho bạn những gì bạn muốn. Các loại số sẽ không hiển thị các số 0 đứng đầu khi chúng được in ra (trong trường hợp là năm DateTime Round(DateTime date, TimeSpan interval) {
return new DateTime(
(long)Math.Round(date.Ticks / (double)interval.Ticks) * interval.Ticks
);
}
1), vì vậy bạn nên sử dụng chuỗi public IEnumerable<DateTime> GenerateRandomDates(int numberOfDates)
{
var rnd = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < numberOfDates; i++)
{
var year = rnd.Next(1, 10000);
var month = rnd.Next(1, 13);
var days = rnd.Next(1, DateTime.DaysInMonth(year, month) + 1);
yield return new DateTime(year, month, days,
rnd.Next(0, 24), rnd.Next(0, 60), rnd.Next(0, 60), rnd.Next(0, 1000));
}
}
9 để thay thế1 1 phiếu bầu Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T18. 48. 26. 963+00. 00 Bây giờ tôi đã kiểm tra lại các liên kết, làm cách nào tôi có thể thay đổi phương thức Làm tròn để nếu thời gian hiện tại trên máy tính là 5 hoặc 0 thì không làm tròn nó mà còn bất kỳ thứ gì khác nếu không phải 5 hoặc 0 làm tròn xuống. luôn luôn xuống. ví dụ 14. 22 vòng thành 14. 20 hoặc 15. 59 xuống còn 15. 55 vòng thời gian chỉ hướng và đến một biến khác đối với phương thức như int timestoround và tạo một vòng lặp for để nó tiếp tục làm tròn xuống từ ngày giờ hiện tại. bây giờ ví dụ 23 lần vì vậy cuối cùng tôi sẽ nhận được một Danh sách ví dụ về. 14. 25 , 14. 20 , 14. 15 , 14. 10. giảm 23 lần Xin lỗi vì sự lộn xộn. Tôi thấy rằng tôi chỉ cần làm tròn xuống và số lần cụ thể DateTime Round(DateTime date, TimeSpan interval)
{
return new DateTime(
(long)Math.Round(date.Ticks / (double)interval.Ticks) * interval.Ticks
);
}
0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T18. 53. 13. 547+00. 00 Bạn chỉ có thể sử dụng DateTime Round(DateTime date, TimeSpan interval) {
return new DateTime(
(long)Math.Round(date.Ticks / (double)interval.Ticks) * interval.Ticks
);
}
3 để thay thếConsole.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
01 1 phiếu bầu Báo cáo Báo cáo sharon glipman 421 Điểm danh tiếng 2021-10-14T19. 08. 38. 373+00. 00 và làm thế nào để tôi làm tròn xuống 23 lần? Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
1datestimes is List Vấn đề là nó sẽ thêm vào Danh sách mỗi lần làm tròn xuống Tôi muốn rằng nó sẽ làm tròn xuống một lần DateTime hiện tại. Bây giờ và sau đó từ thời điểm đó để thêm vào danh sách thêm 22 ngày làm tròn xuống lần Ví dụ đầu tiên là 14. 50 nên 22 còn lại là 14. 45 , 14. 40 , 14. 35. 23 lần 0 {count} phiếu bầu Báo cáo Báo cáo P a u l 7.571 Điểm danh tiếng 2021-10-14T19. 31. 00. 08+00. 00 Một cái gì đó như thế này nên làm điều đó Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
21 1 phiếu bầu Báo cáo Báo cáo Stuart 1 Điểm danh tiếng 2022-01-26T18. 21. 06. 583+00. 00 Có một lỗi với việc triển khai làm tròn đối với các giá trị nhất định của khoảng do độ chính xác kép sẽ dẫn đến làm tròn không chính xác
Làm cách nào để làm tròn số phút trong JavaScript?
Chỉ cần dùng Toán. trần thay vì Toán. vòng . Bằng cách đó, bạn luôn có thể làm tròn 10 phút chẳng hạn.
Làm cách nào để làm tròn thời gian đến 15 phút gần nhất trong js?
Nếu bạn luôn muốn làm tròn đến 15 phút tiếp theo, hãy sử dụng Math. chức năng trần thay vào đó. Đã sao chép. function roundToNearest15(date = new Date()) { const minutes = 15; .
Làm cách nào để làm tròn thời gian đến 30 phút gần nhất trong javascript?
Nếu bạn luôn muốn làm tròn đến 30 phút tiếp theo, hãy sử dụng Math. chức năng trần thay vào đó. Đã sao chép. function roundToNearest30(date = new Date()) { const minutes = 30; .
Làm cách nào để làm tròn số phút thành một phần tư giờ trong JavaScript?
Cách tiếp cận 1. Sử dụng các phương thức getMinutes() và getHours() để lấy số phút và giờ trong một biến (Ví dụ. phút, giờ) thêm 7. 5 đến phút, chia cho 15, lấy giá trị số nguyên và nhân với 15 , sẽ ra phần tư phút gần nhất.
|