Pustaka Go (Golang) lengkap untuk konversi Kalender Jawa. Mendukung Weton, Wuku, Neptu, Mongso (Solar), dan Waktu Tradisional (Wektu).
- Konversi Masehi ke Jawa: Mengubah tanggal Gregorian menjadi penanggalan Jawa.
- Parsing String Jawa: Membuat objek dari string (misal: "28 Jumadilawal 1955").
- Komponen Penanggalan:
- Pasaran: Legi, Pahing, Pon, Wage, Kliwon.
- Wuku: 30 siklus mingguan (Sinta s.d. Watugunung).
- Mongso: Kalender musim/pertanian (Kasa s.d. Sada).
- Neptu: Nilai numerik gabungan hari dan pasaran.
- Wektu: Pembagian waktu tradisional (misal: "Surup", "Lingsir Wengi").
- Fitur Tambahan:
- Kabisat: Deteksi tahun kabisat Jawa.
- Weton Sabanjure: Mencari tanggal terjadinya weton tertentu di masa depan.
- Gregorian: Akses mudah ke objek
Datenative. - Timezone: Dukungan parsing dan formatting timezone offset.
go get github.com/bect/tanggalan
package main
import (
"fmt"
"time"
"github.com/bect/tanggalan"
)
func main() {
// Gunakan tanggal saat ini
now := tanggalan.New(time.Now())
fmt.Println(now.String())
// Contoh output: "Setu Pahing, 26 Ruwah 1959 Ja, Surup"
// Gunakan tanggal tertentu
date := tanggalan.New(time.Date(2023, 8, 17, 0, 0, 0, 0, time.UTC))
fmt.Println(date.Dina) // "Kemis"
fmt.Println(date.Pasaran) // "Kliwon"
}
Anda dapat memformat output menggunakan Format(layout).
jd := tanggalan.New(time.Now())
fmt.Println(jd.Format("D P, dd M yyyy"))
// Output: "Setu Pahing, 26 Ruwah 1959"
Pola yang Tersedia:
| Pola | Deskripsi | Contoh |
|---|---|---|
D |
Nama Hari (Dina) | Setu |
P |
Pasaran | Pahing |
d |
Tanggal (1-30) | 26 |
dd |
Tanggal (01-30) | 26 |
M |
Nama Bulan (Wulan) | Ruwah |
m |
Nomor Bulan | 8 |
mm |
Nomor Bulan (01-12) | 08 |
yyyy |
Tahun (Jawa) | 1959 |
T |
Nama Tahun Windu | Alip |
W |
Wuku | Wukir |
N |
Neptu | 18 |
MS |
Mongso | Kasa |
WK |
Wektu | Surup |
HH |
Jam | 14 |
MM |
Menit | 30 |
SS |
Detik | 00 |
Z |
Timezone Offset | +0700 |
Untuk dokumentasi perhitungan matematis, lihat ALGORITHM.md.
Dina: string - Nama hari (misal: "Senen")Pasaran: string - Nama pasaran (misal: "Wage")Wulan: string - Nama bulan (misal: "Sura")Taun: string - Nama tahun (misal: "Ehe")Wuku: string - Nama wukuMongso: string - Nama mongsoWektu: string - Waktu hari
Date() int: Mengembalikan tanggal Jawa.Day() int: Mengembalikan indeks hari (0=Minggu, 6=Setu).Month() int: Mengembalikan indeks bulan (0=Sura).Year() int: Mengembalikan tahun Jawa.GetPasaran() int: Mengembalikan indeks pasaran.GetNeptu() int: Mengembalikan total nilai neptu.GetWuku() int: Mengembalikan indeks wuku.GetGregorianDate() time.Time: Mengembalikan objektime.Timenative.IsKabisat() bool: Mengembalikantruejika tahun kabisat.Format(layout string) string: Mengembalikan string terformat sesuai pola.WetonSabanjure(weton string) (*Tanggalan, error): Mengembalikan instance Tanggalan untuk weton berikutnya.Parse(value, layout string) (*Tanggalan, error): (Fungsi) Membuat instance dari string.