Home > Backend Development > Golang > How to Convert a Day of Week String to `time.Weekday` in Go?

How to Convert a Day of Week String to `time.Weekday` in Go?

Mary-Kate Olsen
Release: 2024-10-31 04:38:30
Original
783 people have browsed it

How to Convert a Day of Week String to `time.Weekday` in Go?

Convert Day of Week String to time.Weekday

In Go, the time package doesn't offer a built-in function to convert a string representing a day of the week into a time.Weekday value. So, a common solution is to create a custom function to perform this conversion.

One approach is to use an array to store the weekday names and their corresponding time.Weekday values. However, a more efficient and idiomatic solution is to utilize a map.

Using a Map for Conversion:

A map provides faster and direct lookups compared to an array. Here's a snippet demonstrating this approach:

<code class="go">var daysOfWeek = map[string]time.Weekday{
    "Sunday":    time.Sunday,
    "Monday":    time.Monday,
    // ... and so on for all weekdays
}

func parseWeekday(v string) (time.Weekday, error) {
    if d, ok := daysOfWeek[v]; ok {
        return d, nil
    }

    return time.Sunday, fmt.Errorf("invalid weekday '%s'", v)
}</code>
Copy after login

Safely Initializing the Map:

To ensure correct initialization, you can use a for loop to populate the daysOfWeek map:

<code class="go">var daysOfWeek = map[string]time.Weekday{}

func init() {
    for d := time.Sunday; d <= time.Saturday; d++ {
        daysOfWeek[d.String()] = d
    }
}</code>
Copy after login

Extending the Conversion:

The map-based solution allows for easy extension. For instance, you can add 3-letter short weekday names as valid input:

<code class="go">func init() {
    // ... existing initialization code
    for d := time.Sunday; d <= time.Saturday; d++ {
        name := d.String()
        daysOfWeek[name] = d
        daysOfWeek[name[:3]] = d
    }
}</code>
Copy after login

Conclusion:

Using a map for weekday string conversion in Go is both efficient and flexible. It allows for easy lookups, safe initialization, and straightforward extension to accommodate alternative input formats.

The above is the detailed content of How to Convert a Day of Week String to `time.Weekday` in Go?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template