package main
import (
"fmt"
"regexp"
"time"
)
func main(){
a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var b []int
windowSize := 2
for i, e := 0, true; e; i++ {
if windowSize < len(a) - windowSize * i {
b = a[windowSize * i:windowSize * (i + 1)]
} else {
b = a[windowSize * i:]
e = false
}
fmt.Println("b:", b)
}
usageYearMonthFormat := regexp.MustCompile(`^(\d{4})-(0[1-9]|1[012])$`)
fmt.Println(usageYearMonthFormat.FindStringSubmatch("2025-0a"))
jst
:= time.
FixedZone("Asia/Tokyo", 9*60*60)
fmt.
Println(time.
Date(2261, time.
December, 30, 23, 59, 59, 0, time.
UTC).
UnixNano())
fmt.
Println("Format RFC3339Nano", time.
Unix(0, 2057517719900000000).
In(jst
).
Format(time.
RFC3339Nano))
rfcTestTime
, err
:= time.
Parse(time.
RFC3339Nano, "2022-09-19T17:10:33.403859986+09:00") fmt.Println("Parse RFC3339Nano 2022-09-19T17:10:33.403859986+09:00: ", rfcTestTime.UnixNano(), err)
rfcTestTimeEmpty
, err
:= time.
Parse(time.
RFC3339Nano, "") fmt.Println("Parse RFC3339Nano empty: ", rfcTestTimeEmpty, err)
fmt.
Println("now", time.
Now().
UnixNano()) fmt.
Println("2261", time.
Date(2261, time.
December, 31, 23, 59, 59, 0, time.
UTC).
UnixNano()) fmt.
Println("aaaa", time.
Unix(0, 9214646399000000000).
In(jst
))
t
, _
:= time.
Parse("2006-01-02", "2022-04-01") fmt.Println(t.In(jst))
fmt.
Println("startDate 2024/11/01", time.
Date(2024, time.
Month(11), 1, 0, 0, 0, 0, jst
).
UnixNano()) fmt.
Println("endDate 2023/08/24", time.
Date(2023, time.
Month(8), 24, 23, 59, 59, 999999999, jst
).
UnixNano()) fmt.
Println("endDate 2023/09/15(ms)", time.
Date(2023, time.
Month(9), 15, 23, 59, 59, 990000000, jst
).
UnixNano())
startOfApril
:= time.
Date(2022, time.
Month(4), 1, 0, 0, 0, 0, jst
) endOfApril
:= time.
Date(2022, time.
Month(4), 30, 23, 59, 59, 999999999, jst
)
fmt.Println("4/1", startOfApril)
fmt.Println("4/30", endOfApril)
fmt.Println(endOfApril.Day() - startOfApril.Day() + 1)
closingDate
:= time.
Date(2022, time.
Month(4), 20, 23, 59, 59, 999999999, jst
)
fmt.Println(closingDate.AddDate(0, 0, -(31 - 1)))
fmt.Println(0 / 31)
}
cGFja2FnZSBtYWluCmltcG9ydCAoCgkiZm10IgoJInJlZ2V4cCIKCSJ0aW1lIgopCgpmdW5jIG1haW4oKXsKCWEgOj0gW11pbnR7MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTB9Cgl2YXIgYiBbXWludAoJd2luZG93U2l6ZSA6PSAyCgkKCWZvciBpLCBlIDo9IDAsIHRydWU7IGU7IGkrKyB7CgkJaWYgd2luZG93U2l6ZSA8IGxlbihhKSAtIHdpbmRvd1NpemUgKiBpIHsKCQkJYiA9IGFbd2luZG93U2l6ZSAqIGk6d2luZG93U2l6ZSAqIChpICsgMSldCgkJfSBlbHNlIHsKCQkJYiA9IGFbd2luZG93U2l6ZSAqIGk6XQoJCQllID0gZmFsc2UKCQl9CgkJCgkJZm10LlByaW50bG4oImI6IiwgYikKCX0KCQoJCgl1c2FnZVllYXJNb250aEZvcm1hdCA6PSByZWdleHAuTXVzdENvbXBpbGUoYF4oXGR7NH0pLSgwWzEtOV18MVswMTJdKSRgKQoJZm10LlByaW50bG4odXNhZ2VZZWFyTW9udGhGb3JtYXQuRmluZFN0cmluZ1N1Ym1hdGNoKCIyMDI1LTBhIikpCgkKCQoJanN0IDo9IHRpbWUuRml4ZWRab25lKCJBc2lhL1Rva3lvIiwgOSo2MCo2MCkKCQoJZm10LlByaW50bG4odGltZS5EYXRlKDIyNjEsIHRpbWUuRGVjZW1iZXIsIDMwLCAyMywgNTksIDU5LCAwLCB0aW1lLlVUQykuVW5peE5hbm8oKSkKCgogICAgZm10LlByaW50bG4oIkZvcm1hdCBSRkMzMzM5TmFubyIsIHRpbWUuVW5peCgwLCAyMDU3NTE3NzE5OTAwMDAwMDAwKS5Jbihqc3QpLkZvcm1hdCh0aW1lLlJGQzMzMzlOYW5vKSkKCiAgICByZmNUZXN0VGltZSwgZXJyIDo9IHRpbWUuUGFyc2UodGltZS5SRkMzMzM5TmFubywgIjIwMjItMDktMTlUMTc6MTA6MzMuNDAzODU5OTg2KzA5OjAwIikKICAgIGZtdC5QcmludGxuKCJQYXJzZSBSRkMzMzM5TmFubyAyMDIyLTA5LTE5VDE3OjEwOjMzLjQwMzg1OTk4NiswOTowMDogIiwgcmZjVGVzdFRpbWUuVW5peE5hbm8oKSwgZXJyKQogICAgCiAgICByZmNUZXN0VGltZUVtcHR5LCBlcnIgOj0gdGltZS5QYXJzZSh0aW1lLlJGQzMzMzlOYW5vLCAiIikKICAgIGZtdC5QcmludGxuKCJQYXJzZSBSRkMzMzM5TmFubyBlbXB0eTogIiwgcmZjVGVzdFRpbWVFbXB0eSwgZXJyKQoKCWZtdC5QcmludGxuKCJub3ciLCB0aW1lLk5vdygpLlVuaXhOYW5vKCkpCglmbXQuUHJpbnRsbigiMjI2MSIsIHRpbWUuRGF0ZSgyMjYxLCB0aW1lLkRlY2VtYmVyLCAzMSwgMjMsIDU5LCA1OSwgMCwgdGltZS5VVEMpLlVuaXhOYW5vKCkpCglmbXQuUHJpbnRsbigiYWFhYSIsIHRpbWUuVW5peCgwLCA5MjE0NjQ2Mzk5MDAwMDAwMDAwKS5Jbihqc3QpKQoJCgl0LCBfIDo9IHRpbWUuUGFyc2UoIjIwMDYtMDEtMDIiLCAiMjAyMi0wNC0wMSIpCglmbXQuUHJpbnRsbih0LkluKGpzdCkpCglmbXQuUHJpbnRsbigic3RhcnREYXRlIDIwMjQvMTEvMDEiLCB0aW1lLkRhdGUoMjAyNCwgdGltZS5Nb250aCgxMSksIDEsIDAsIDAsIDAsIDAsIGpzdCkuVW5peE5hbm8oKSkKCWZtdC5QcmludGxuKCJlbmREYXRlIDIwMjMvMDgvMjQiLCB0aW1lLkRhdGUoMjAyMywgdGltZS5Nb250aCg4KSwgMjQsIDIzLCA1OSwgNTksIDk5OTk5OTk5OSwganN0KS5Vbml4TmFubygpKQoJZm10LlByaW50bG4oImVuZERhdGUgMjAyMy8wOS8xNShtcykiLCB0aW1lLkRhdGUoMjAyMywgdGltZS5Nb250aCg5KSwgMTUsIDIzLCA1OSwgNTksIDk5MDAwMDAwMCwganN0KS5Vbml4TmFubygpKQoKCXN0YXJ0T2ZBcHJpbCA6PSB0aW1lLkRhdGUoMjAyMiwgdGltZS5Nb250aCg0KSwgMSwgMCwgMCwgMCwgMCwganN0KQoJZW5kT2ZBcHJpbCA6PSB0aW1lLkRhdGUoMjAyMiwgdGltZS5Nb250aCg0KSwgMzAsIDIzLCA1OSwgNTksIDk5OTk5OTk5OSwganN0KQoKCWZtdC5QcmludGxuKCI0LzEiLCBzdGFydE9mQXByaWwpCQoJZm10LlByaW50bG4oIjQvMzAiLCBlbmRPZkFwcmlsKQoJZm10LlByaW50bG4oZW5kT2ZBcHJpbC5EYXkoKSAtIHN0YXJ0T2ZBcHJpbC5EYXkoKSArIDEpCgkKCWNsb3NpbmdEYXRlIDo9IHRpbWUuRGF0ZSgyMDIyLCB0aW1lLk1vbnRoKDQpLCAyMCwgMjMsIDU5LCA1OSwgOTk5OTk5OTk5LCBqc3QpCgkKCWZtdC5QcmludGxuKGNsb3NpbmdEYXRlLkFkZERhdGUoMCwgMCwgLSgzMSAtIDEpKSkKCQoJZm10LlByaW50bG4oMCAvIDMxKQp9