Kurzusok
/
Go
Go
/
Feladatok
/
Foglalás a szépségszalonba
Foglalás a szépségszalonba

Foglalás a szépségszalonba

Tanulófeladat

Bevezetés

A Time a Go-ban egy időpillanatot leíró típus. A dátum- és időinformációk a metódusain keresztül érhetők el, hasonlíthatók össze és módosíthatók, de van néhány függvény, amelyet magán a time csomagon hívunk meg. Az aktuális dátumot és időt a time.Now függvénnyel kérheted le.

A time.Parse függvény stringeket alakít Time típusú értékekké. A Go sajátos módon írja le, hogyan adod meg az elemzéshez várt formátumot. A formátumot úgy írod le, hogy példát adsz rá ennek a különleges időbélyegnek az értékeivel: Mon Jan 2 15:04:05 -0700 MST 2006.

Például:

import "time"

func parseTime() time.Time {
    date := "Tue, 09/22/1995, 13:00"
    layout := "Mon, 01/02/2006, 15:04"

    t, err := time.Parse(layout,date) // time.Time, error
}

// => 1995-09-22 13:00:00 +0000 UTC

A Time.Format() metódus az idő egy stringes reprezentációját adja vissza. Ahogy a Parse függvénynél, a célformátumot itt is egy olyan példán keresztül adod meg, amely a különleges időbélyeg értékeit használja.

Például:

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(1995,time.September,22,13,0,0,0,time.UTC)
    formattedTime := t.Format("Mon, 01/02/2006, 15:04") // string
    fmt.Println(formattedTime)
}

// => Fri, 09/22/1995, 13:00

Formátumbeállítások

Egyéni formátumhoz ezeknek a beállításoknak a kombinációját használd. A Go-ban emellett előre definiált dátum- és időbélyeg-formátumkonstansok is elérhetők.

Idő Beállítások
Év 2006 ; 06
Hónap Jan ; January ; 01 ; 1
Nap 02 ; 2 ; _2 (a vezető 0-hoz)
A hét napja Mon ; Monday
Óra 15 ( 24 órás időformátum ) ; 3 ; 03 (AM vagy PM)
Perc 04 ; 4
Másodperc 05 ; 5
AM/PM jelölés PM
Az év napja 002 ; __2

A time.Time típusnak számos metódusa van egy adott időrész eléréséhez. Például óra: Time.Hour(), hónap: Time.Month(). Hogy ez pontosan hogyan működik, arról a hivatalos dokumentációban olvashatsz.

A time csomag egy másik típust is tartalmaz, a Duration-t, amely egy eltelt időtartamot ír le, emellett támogatja az időzónákat, az időzítőket és más kapcsolódó funkciókat, amelyekről egy másik fogalomban lesz szó.

Utasítások

Ebben a feladatban egy szépségszalon időpont-ütemezőjén dolgozol majd, amely 2012. szeptember 15-én nyílt meg.

Öt részfeladat vár rád, és mindegyikben időpontokkal lesz dolgod.

1. Egy időpont dátumának beolvasása

Valósítsd meg a Schedule függvényt, amely egy időpont szöveges formáját alakítja át a megfelelő time.Time formátumra:

Schedule("7/25/2019 13:45:00")
// => 2019-07-25 13:45:00 +0000 UTC

2. Ellenőrizd, hogy egy időpont már elmúlt-e

Valósítsd meg a HasPassed függvényt, amely átvesz egy időpontot, és ellenőrzi, hogy az a múltban volt-e:

HasPassed("July 25, 2019 13:45:00")
// => true

3. Ellenőrizd, hogy az időpont délutánra esik-e

Valósítsd meg az IsAfternoonAppointment függvényt, amely átvesz egy időpontot, és ellenőrzi, hogy az délutánra esik-e (>= 12:00 és < 18:00):

IsAfternoonAppointment("Thursday, July 25, 2019 13:45:00")
// => true

4. Írd le az időpont dátumát és idejét

Valósítsd meg a Description függvényt, amely átvesz egy időpontot, és visszaadja annak a dátumnak és időnek a leírását:

Description("7/25/2019 13:45:00")
// => "You have an appointment on Thursday, July 25, 2019, at 13:45."

5. Add vissza a szalon megnyitásának évfordulóját

Valósítsd meg az AnniversaryDate függvényt, amely visszaadja a szalon megnyitásának évfordulóját az aktuális évre UTC-ben.

Tegyük fel, hogy a jelenlegi év 2020:

AnniversaryDate()

// => 2020-09-15 00:00:00 +0000 UTC

Megjegyzés: a visszatérési érték egy time.Time, és a napszak nem számít.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Go Exercism

Készen állsz elkezdeni a(z) Foglalás a szépségszalonba feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.