Thời gian làm tròn đến 5 phút gần nhất JavaScript

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ùng

Hy 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

  1. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

    Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  2. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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));
                }
            }
    
    1

    Console.WriteLine($"Input: {Input}, Actual: {actual}, Expected: {expected}, Pass: {actual == expected}");
    

    0 {count} phiếu bầu Báo cáo

    Báo cáo

  3. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  4. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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));
                }
            }
    
    5

    var 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ất

    1 1 phiếu bầu Báo cáo

    Báo cáo

  5. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  6. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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ày

    var 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

  7. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  8. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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ỗi

    0 {count} phiếu bầu Báo cáo

    Báo cáo

  9. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  10. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  11. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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

  12. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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}");
    
    0

    1 1 phiếu bầu Báo cáo

    Báo cáo

  13. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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}");
    
    1

    datestimes 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

  14. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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}");
    
    2

    1 1 phiếu bầu Báo cáo

    Báo cáo

  15. Thời gian làm tròn đến 5 phút gần nhất JavaScript

    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.