Help us understand the problem. What is going on with this article?

30時間制の時間表現を扱うパッケージを作った

どうして?

テレビやラジオのタイムスケジュールを見ると、25:00のような表現を目にすることがありますよね。
ラジオ番組を日常的に聴取していると、"木曜1:00"という表現よりは、"水曜25:00"という表現の方がしっくりくるのですが、これを感覚的に使えるパッケージが見当たらなかったので、作ることにしました。
そもそも、この表現方法の名前が分からなかったので、ここでは仮に30時間制としています。(28時間制とか30時間制とか、いくつかありそうです)

30時間制の説明.png

やったこと

timeパッケージを拡張してtimeextパッケージを作りました。
0:00:00-05:59:59間の時刻を30時間制に置き換えます。
https://github.com/bluemon0919/timeext

用意した機能はParseFormatです。

timeパッケージの機能との差分は?

timeextパッケージは0:00:00-05:59:59間の時刻を30時間制に置き換えますが、それ以外の時刻についてはtimeパッケージと同じ動作をします。

使い方

時刻を表す文字列をtime.Time型のデータにパースする

例えば2020.07.12 25:00:00という時刻をパースしたい場合、次のように呼び出すことでtime.Time型のデータを取得します。
この時刻データは2020.07.13 01:00:00と同値になります。

const Layout string = "2006.01.02 15:04:05"

parsed, _ := timeext.Parse(Layout, "2020.07.12 25:00:00")
f := time.Time(parsed).Format(Layout)
fmt.Println(f) // 2020.07.13 01:00:00

https://play.golang.org/p/vHSYCGfxGz6

time.Time型のデータから30時間制の文字列を取得する

逆に2020.07.13 01:00:00を30時間制の時刻として取得したい場合、次のコードで文字列を取得できます。

const Layout string = "2006.01.02 15:04:05"

parsed, _ := time.Parse(Layout, "2020.07.13 01:00:00")
f := timeext.TimeExt(parsed).Format(Layout)
fmt.Println(f) // 2020.07.12 25:00:00

https://play.golang.org/p/qP8EOev_JrQ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした