Go: día de la semana según fecha

Hoy vamos a ver cómo obtener el día de la semana (lunes, martes, miércoles, etcétera) a partir de una fecha como cadena, usando el lenguaje de programación Go y trabajando con las fechas gracias al paquete time.

Lo que tendremos al final será una forma de saber que la fecha “2020-07-21” es martes, por ejemplo.

Parsear fecha

Primero necesitamos parsear la fecha usando time.Parse. Esta función recibe el formato (que extrañamente es una fecha layout, y no letras) y la fecha en cuestión, proporcionada por el usuario.

fecha := "2020-07-21"
// 2006-01-02 es layout de YYYY-MM-DD. No modificar
t, err := time.Parse("2006-01-02", fecha)

En este caso la variable fecha guarda la fecha proporcionada por el usuario. Fíjate en que su formato es Año con cuatro dígitos, mes con dos dígitos, y día con dos dígitos.

Obtener día de la semana

Ahora que hemos parseado la fecha, podemos invocar a Weekday en la variable t. En este caso devolverá un entero cuyo valor será 0 en domingo, hasta 6 en sábado.

A partir de ese valor podemos obtener el nombre del día usando por ejemplo un arreglo:

dia := Dias[t.Weekday()]
fmt.Printf("En la fecha %s fue %s", fecha, dia)

Poniendo todo junto

El código completo queda como se ve a continuación. En este caso a partir de una variable con la fecha, podemos extraer su día de semana de Lunes a domingo.

// https://parzibyte.me/blog
package main

import (
	"fmt"
	"time"
)

func main() {
	var Dias = []string{"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"}

	fecha := "2020-07-21"
	// 2006-01-02 es layout de YYYY-MM-DD. No modificar
	t, err := time.Parse("2006-01-02", fecha)
	if err != nil {
		panic(err)
	}
	dia := Dias[t.Weekday()]
	fmt.Printf("En la fecha %s fue %s", fecha, dia)
}

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *