Время никого не ждет.

В Golang есть пакет time, который в большинстве случаев обслуживает сложности, связанные со временем.

В отличие от других языков программирования, он не содержит всех утилит по умолчанию, которые можно использовать напрямую, таких как «Добавить день» или «Вычесть день» и т. д.
Однако можно использовать его методы по умолчанию и создавать свои требования.

В этом блоге мы обсудим некоторые утилиты, такие как добавление дней или поиск различий между отметками времени и т. д. Которые мы часто встречаем, но недоступны на уровне библиотеки. Пусть эта статья сэкономит вам несколько минут!

Вам не понадобится больше, кроме пакета time. Давайте погрузимся!

Добавление дней к или вычитание дней из заданного времени

Эта функция добавит количество дней в заданную метку времени. Его также можно использовать для добавления лет или месяцев.

Конечно, есть также функция Add() для добавления дней к заданной дате. Но он не добавляет дни, он добавляет часы. По сути, вы можете написать так:
t.Add(количество дней * 24).

Однако рекомендуется использовать AddDate(), а не Add(), так как при переходе на летнее время расчет на основе часов будет неточным.

Поскольку пакет time не содержит метода вычитания для дней, он позволяет выполнять вычитание только с использованием Add(), но с отрицательными числами.

Получить время начала дня

Чтобы найти время начала дня по данной временной метке, нам сначала нужно найти день, месяц и год данной временной метки.

Затем, обнулив часы, минуты и секунды, мы можем получить начало дня в указанном часовом поясе.

Получить время окончания дня

Чтобы получить конечное время, нам просто нужно изменить часы, минуты и секунды на 23, 59 и 59 соответственно.

Кроме того, с помощью этого метода мы можем получить любое время из 24 часов вместе с определенным часовым поясом.

Проверьте, совпадают ли данные два дня или нет

Чтобы узнать, совпадают ли две заданные метки времени или нет, нам нужно сравнить —
1. Номер дня в году
2. Год

Если они оба одинаковы, день один и тот же.

Например,
t.YearDay() вернет 15 для даты 15 января 2022 года
t.Year() вернет 2022 для того же самого.

Найти количество дней между заданными временными метками

Пакет time показывает разницу между двумя временными метками в часах, минутах и ​​секундах (не в днях).

Решение для нахождения количества дней между двумя временными метками состоит в том, чтобы получить часы между ними и разделить их на 24. Это даст количество дней между ними.

Чтобы найти разницу в минутах, запустите end.Sub(start).Minutes()

Найдите количество дней недели (понедельник, вторник,…) между двумя датами

Для расчета конкретных дней недели (понедельник, вторник, ...воскресенье) между заданным диапазоном времени может быть полезна следующая функция.

Где
день = любое число от 1 до 7, с понедельника по воскресенье соответственно

Проверить, является ли данный год високосным

Всякий раз, когда мы приступаем к вычислению времени, часто нам нужно рассчитать дни, и это может варьироваться в зависимости от года (рассмотрим високосный год), особенно в случае февраля.

Как бы ни повторялся високосный год через такой интервал в 4 года, все равно придется это учитывать.

Ниже приведен код, который поможет определить, является ли данный год високосным или нет.

Здесь мы проверили 3 условия,

year%4 == 0, т. е. год должен быть кратен 4 (поскольку он повторяется через 4 года),
year%100 != 0 || year%400 == 0, т. е. либо год должен быть кратен 400, либо не должен быть кратен 100.

Попробуйте с вашим любимым годом!

Заключение

Это все на сегодня. Надеюсь, эти фрагменты помогут вам при работе с пакетом времени Golang. Это очень простые функции, вы всегда должны добавлять свои собственные, которые обычно используются в ваших проектах.

Как всегда, отзывы и предложения приветствуются, пожалуйста, добавьте их в разделе комментариев ниже.

Похожие популярные статьи





Спасибо за вашу поддержку!

Если вам нравится то, что вы читаете, обязательно 👏 👏👏 это ниже — как писатель это означает мир!

Подпишитесь на Canopasилисвяжитесь с нами в Twitter, чтобы получать новости об интересных статьях!