Skip to content

Instantly share code, notes, and snippets.

@Vostbur
Created December 17, 2022 08:47
Show Gist options
  • Save Vostbur/2d4d450a90056ed7fe27058eae17a3ee to your computer and use it in GitHub Desktop.
Save Vostbur/2d4d450a90056ed7fe27058eae17a3ee to your computer and use it in GitHub Desktop.
Stepic. Golang. Work with Time

На стандартный ввод подается строковое представление двух дат, разделенных запятой (формат данных смотрите в примере).

Необходимо преобразовать полученные данные в тип Time, а затем вывести продолжительность периода между меньшей и большей датами.

Sample Input:

13.03.2018 14:00:15,12.03.2018 14:00:15

Sample Output:

24h0m0s
package main
import (
"io"
"os"
"fmt"
"bufio"
"time"
"strings"
)
func main() {
timeStr, err := bufio.NewReader(os.Stdin).ReadString('\n')
if err != nil && err != io.EOF {
panic(err)
}
timeStr = strings.TrimSpace(timeStr)
tStr := strings.Split(timeStr, ",")
t1, err := time.Parse("02.01.2006 15:04:05", tStr[0])
if err != nil {
panic(err)
}
t2, err := time.Parse("02.01.2006 15:04:05", tStr[1])
if err != nil {
panic(err)
}
var d time.Duration
if t1.Before(t2) {
d = time.Since(t1) - time.Since(t2)
} else {
d = time.Since(t2) - time.Since(t1)
}
fmt.Println(d.Round(time.Second))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment