Exploración del Tiempo y la Duración en Go

GolangGolangBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este laboratorio tiene como objetivo probar su comprensión del soporte de Go para el tiempo y la duración.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/AdvancedTopicsGroup(["Advanced Topics"]) go/AdvancedTopicsGroup -.-> go/time("Time") subgraph Lab Skills go/time -.-> lab-15522{{"Exploración del Tiempo y la Duración en Go"}} end

Tiempo

El código siguiente contiene ejemplos de cómo trabajar con el tiempo y la duración en Go. Sin embargo, algunas partes del código están faltando. Su tarea es completar el código para que funcione como se espera.

  • Conocimientos básicos del lenguaje de programación Go.
  • Familiaridad con el soporte de Go para el tiempo y la duración.
$ go run time.go
2012-10-31 15:50:13.793654 +0000 UTC
2009-11-17 20:34:58.651387237 +0000 UTC
2009
November
17
20
34
58
651387237
UTC
Tuesday
true
false
false
25891h15m15.142266763s
25891.25420618521
1.5534752523711128e+06
9.320851514226677e+07
93208515142266763
2012-10-31 15:50:13.793654 +0000 UTC
2006-12-05 01:19:43.509120474 +0000 UTC

## A continuación, veremos la idea relacionada del tiempo
## en relación con la época Unix.

A continuación está el código completo:

// Go ofrece un amplio soporte para tiempos y duraciones;
// aquí hay algunos ejemplos.

package main

import (
	"fmt"
	"time"
)

func main() {
	p := fmt.Println

	// Comenzaremos obteniendo la hora actual.
	ahora := time.Now()
	p(ahora)

	// Puedes construir una estructura `time` proporcionando
	// el año, mes, día, etc. Los tiempos siempre están
	// asociados con una `Location`, es decir, una zona horaria.
	entonces := time.Date(
		2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
	p(entonces)

	// Puedes extraer los diversos componentes del valor de tiempo
	// como se espera.
	p(entonces.Year())
	p(entonces.Month())
	p(entonces.Day())
	p(entonces.Hour())
	p(entonces.Minute())
	p(entonces.Second())
	p(entonces.Nanosecond())
	p(entonces.Location())

	// El `Weekday` de lunes a domingo también está disponible.
	p(entonces.Weekday())

	// Estos métodos comparan dos tiempos, probando si el
	// primero ocurre antes, después o al mismo tiempo
	// que el segundo, respectivamente.
	p(entonces.Before(ahora))
	p(entonces.After(ahora))
	p(entonces.Equal(ahora))

	// El método `Sub` devuelve una `Duration` que representa
	// el intervalo entre dos tiempos.
	diferencia := ahora.Sub(entonces)
	p(diferencia)

	// Podemos calcular la duración en
	// varios unidades.
	p(diferencia.Hours())
	p(diferencia.Minutes())
	p(diferencia.Seconds())
	p(diferencia.Nanoseconds())

	// Puedes usar `Add` para avanzar un tiempo en una
	// duración dada, o con un `-` para retroceder en una
	// duración.
	p(entonces.Add(diferencia))
	p(entonces.Add(-diferencia))
}

Resumen

Este laboratorio probó su capacidad para trabajar con el soporte de Go para el tiempo y la duración. Aprendió cómo extraer los diversos componentes de un valor de tiempo, comparar dos tiempos, calcular la duración de un intervalo y avanzar un tiempo en una duración dada.