diff --git a/test.jl b/test.jl index bad2607..226de68 100644 --- a/test.jl +++ b/test.jl @@ -1,9 +1,34 @@ # То же самое, но на julia using Logging +using Printf +using Dates + debuglogger = ConsoleLogger(stderr, Logging.Debug) global_logger(debuglogger) +# правильный перевод! +function humanbytes(B) + """Return the given bytes as a human friendly KB, MB, GB, or TB string.""" + B = float(B) + KB = float(1024) + MB = float(KB ^ 2) # 1,048,576 + GB = float(KB ^ 3) # 1,073,741,824 + TB = float(KB ^ 4) # 1,099,511,627,776 + + if B < KB + return @sprintf("%.2f Bytes", B) + elseif KB <= B && B < MB + return @sprintf("%.2f KB", (B / KB)) + elseif MB <= B && B < GB + return @sprintf("%.2f MB", (B / MB)) + elseif GB <= B && B < TB + return @sprintf("%.2f GB", (B / GB)) + elseif TB <= B + return @sprintf("%.2f TB", (B / KB)) + end +end + function new_name(name) matches = Dict( "Сек" => r"(.+) Сек.*", @@ -40,8 +65,10 @@ function file_info(filename) m = Dict( "filename" => filename, "size" => info.size, + "hsize" => humanbytes(info.size), "mtime" => info.mtime, "ctime" => info.ctime, + "htime" => Dates.format(Dates.unix2datetime(info.ctime), "dd.mm.yyyy"), "ext" => ext, ) return m