Lewati ke konten

Hari kerja

2026-08-20

Melewati 2 hari akhir pekan dan 1 hari libur: 17 Agu Proklamasi Kemerdekaan.

Jalan di browser kamu.

Hari kerja melewati akhir pekan, libur nasional, dan cuti bersama dari holiday. Cocok untuk tanggal gajian, SLA, dan jatuh tempo.

Go TypeScript Hasil
workday.IsWorkday(date, opts) workday.isWorkday(date, opts?) Apakah date hari kerja
workday.Add(date, days, opts) workday.add(date, days, opts?) Tanggal days hari kerja kemudian (negatif = mundur)
workday.Count(from, to, opts) workday.count(from, to, opts?) Jumlah hari kerja dari from sampai to, inklusif
Go Options TypeScript Default
Weekend []time.Weekday weekend: number[] Sabtu dan Minggu
CollectiveLeaveIsWorkday collectiveLeaveIsWorkday false

Hari akhir pekan di TypeScript memakai 0 untuk Minggu sampai 6 untuk Sabtu, seperti Date.getUTCDay(). Enam hari kerja seminggu ditulis [0].

Perhitungan cuma jalan di tahun yang punya data libur, supaya hasilnya tidak diam-diam salah. Tanggal di luar rentang itu gagal dengan range.

date, range (di luar tahun yang tercakup, atau from setelah to), options (hari akhir pekan tidak valid, atau semua hari dijadikan akhir pekan).

package main
import (
"fmt"
"time"
"github.com/haikalmumtaz233/nusaindex/workday"
)
func main() {
open, err := workday.IsWorkday("2026-08-17", workday.Options{})
if err == nil {
fmt.Println(open)
}
due, err := workday.Add("2026-08-14", 3, workday.Options{})
if err == nil {
fmt.Println(due)
}
days, err := workday.Count("2026-08-01", "2026-08-31", workday.Options{})
if err == nil {
fmt.Println(days)
}
sixDay := workday.Options{Weekend: []time.Weekday{time.Sunday}, CollectiveLeaveIsWorkday: true}
days, err = workday.Count("2026-08-01", "2026-08-31", sixDay)
if err == nil {
fmt.Println(days)
}
}
Keluaran
false
2026-08-20
19
24