diff --git a/vlib/time/format.v b/vlib/time/format.v index c53b9648df..8484926b23 100644 --- a/vlib/time/format.v +++ b/vlib/time/format.v @@ -54,11 +54,11 @@ pub fn (t Time) md() string { } // clean returns a date string in a following format: -// - a date string in "HH:MM" format (24h) for current day -// - a date string in "MMM D HH:MM" format (24h) for date of current year -// - a date string formatted with format function for other dates +// - a date string in "HH:MM" format (24h) for current day +// - a date string in "MMM D HH:MM" format (24h) for date of current year +// - a date string formatted with format function for other dates pub fn (t Time) clean() string { - znow := time.now() + znow := now() // Today if t.month == znow.month && t.year == znow.year && t.day == znow.day { return t.get_fmt_time_str(.hhmm24) @@ -71,11 +71,11 @@ pub fn (t Time) clean() string { } // clean12 returns a date string in a following format: -// - a date string in "HH:MM" format (12h) for current day -// - a date string in "MMM D HH:MM" format (12h) for date of current year -// - a date string formatted with format function for other dates +// - a date string in "HH:MM" format (12h) for current day +// - a date string in "MMM D HH:MM" format (12h) for date of current year +// - a date string formatted with format function for other dates pub fn (t Time) clean12() string { - znow := time.now() + znow := now() // Today if t.month == znow.month && t.year == znow.year && t.day == znow.day { return t.get_fmt_time_str(.hhmm12) @@ -93,28 +93,21 @@ pub fn (t Time) get_fmt_time_str(fmt_time FormatTime) string { return '' } tp := if t.hour > 11 { 'p.m.' } else { 'a.m.' } - hour := if t.hour > 12 { t.hour - 12 } else if t.hour == 0 { 12 } else { t.hour } + hour := if t.hour > 12 { + t.hour - 12 + } else if t.hour == 0 { + 12 + } else { + t.hour + } return match fmt_time { - .hhmm12{ - '$hour:${t.minute:02d} $tp' - } - .hhmm24{ - '${t.hour:02d}:${t.minute:02d}' - } - .hhmmss12{ - '$hour:${t.minute:02d}:${t.second:02d} $tp' - } - .hhmmss24{ - '${t.hour:02d}:${t.minute:02d}:${t.second:02d}' - } - .hhmmss24_milli{ - '${t.hour:02d}:${t.minute:02d}:${t.second:02d}.${(t.microsecond/1000):03d}' - } - .hhmmss24_micro{ - '${t.hour:02d}:${t.minute:02d}:${t.second:02d}.${t.microsecond:06d}' - } - else { - 'unknown enumeration $fmt_time'} + .hhmm12 { '$hour:${t.minute:02d} $tp' } + .hhmm24 { '${t.hour:02d}:${t.minute:02d}' } + .hhmmss12 { '$hour:${t.minute:02d}:${t.second:02d} $tp' } + .hhmmss24 { '${t.hour:02d}:${t.minute:02d}:${t.second:02d}' } + .hhmmss24_milli { '${t.hour:02d}:${t.minute:02d}:${t.second:02d}.${(t.microsecond/1000):03d}' } + .hhmmss24_micro { '${t.hour:02d}:${t.minute:02d}:${t.second:02d}.${t.microsecond:06d}' } + else { 'unknown enumeration $fmt_time' } } } @@ -124,52 +117,27 @@ pub fn (t Time) get_fmt_date_str(fmt_dlmtr FormatDelimiter, fmt_date FormatDate) if fmt_date == .no_date { return '' } - month := '${t.smonth()}' + month := '$t.smonth()' year := t.year.str()[2..] -mut res := match fmt_date { - .ddmmyy{ - '${t.day:02d}|${t.month:02d}|$year' - } - .ddmmyyyy{ - '${t.day:02d}|${t.month:02d}|${t.year}' - } - .mmddyy{ - '${t.month:02d}|${t.day:02d}|$year' - } - .mmddyyyy{ - '${t.month:02d}|${t.day:02d}|${t.year}' - } - .mmmd{ - '$month|${t.day}' - } - .mmmdd{ - '$month|${t.day:02d}' - } - .mmmddyyyy{ - '$month|${t.day:02d}|${t.year}' - } - .yyyymmdd{ - '${t.year}|${t.month:02d}|${t.day:02d}' - } - else { - 'unknown enumeration $fmt_date'}} - res = res.replace('|', match fmt_dlmtr { - .dot{ - '.' - } - .hyphen{ - '-' - } - .slash{ - '/' - } - .space{ - ' ' - } - .no_delimiter{ - '' - } - }) + mut res := match fmt_date { + .ddmmyy { '${t.day:02d}|${t.month:02d}|$year' } + .ddmmyyyy { '${t.day:02d}|${t.month:02d}|$t.year' } + .mmddyy { '${t.month:02d}|${t.day:02d}|$year' } + .mmddyyyy { '${t.month:02d}|${t.day:02d}|$t.year' } + .mmmd { '$month|$t.day' } + .mmmdd { '$month|${t.day:02d}' } + .mmmddyyyy { '$month|${t.day:02d}|$t.year' } + .yyyymmdd { '$t.year|${t.month:02d}|${t.day:02d}' } + else { 'unknown enumeration $fmt_date' } + } + del := match fmt_dlmtr { + .dot { '.' } + .hyphen { '-' } + .slash { '/' } + .space { ' ' } + .no_delimiter { '' } + } + res = res.replace('|', del) return res } @@ -181,25 +149,22 @@ pub fn (t Time) get_fmt_str(fmt_dlmtr FormatDelimiter, fmt_time FormatTime, fmt_ // saving one function call although it's checked in // t.get_fmt_time_str(fmt_time) in the beginning return '' - } - else { + } else { return t.get_fmt_time_str(fmt_time) } - } - else { + } else { if fmt_time != .no_time { return t.get_fmt_date_str(fmt_dlmtr, fmt_date) + ' ' + t.get_fmt_time_str(fmt_time) - } - else { + } else { return t.get_fmt_date_str(fmt_dlmtr, fmt_date) } } } // This is just a TEMPORARY function for cookies and their expire dates -pub fn (time Time) utc_string() string { - day_str := time.weekday_str() - month_str := time.smonth() - utc_string := '$day_str, $time.day $month_str $time.year ${time.hour:02d}:${time.minute:02d}:${time.second:02d} UTC' +pub fn (t Time) utc_string() string { + day_str := t.weekday_str() + month_str := t.smonth() + utc_string := '$day_str, $t.day $month_str $t.year ${t.hour:02d}:${t.minute:02d}:${t.second:02d} UTC' return utc_string } diff --git a/vlib/v/tests/valgrind/1.strings_and_arrays.v b/vlib/v/tests/valgrind/1.strings_and_arrays.v index f2b03716c7..7e22d75688 100644 --- a/vlib/v/tests/valgrind/1.strings_and_arrays.v +++ b/vlib/v/tests/valgrind/1.strings_and_arrays.v @@ -49,11 +49,22 @@ fn str_replace() { println(r) } +fn match_expr() string { + x := 2 + res := match x { + 1 { 'one' } + 2 { 'two' } + else { 'unknown' } + } + return res +} + fn main() { println('start') foo() str_tmp_expr() str_inter() + match_expr() // str_replace() println('end') }