Skip to content
/ tanggalan Public

Pustaka JavaScript lengkap untuk konversi Kalender Jawa. Mendukung Weton, Wuku, Neptu, Mongso (Solar), dan Waktu Tradisional (Wektu).

License

Notifications You must be signed in to change notification settings

bect/tanggalan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Tanggalan (Rust)

Pustaka JavaScript lengkap untuk konversi Kalender Jawa. Mendukung Weton, Wuku, Neptu, Mongso (Solar), dan Waktu Tradisional (Wektu). Mendukung target Rust, WebAssembly (Node.js/Browser), dan Python.

Fitur

  • 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 Date native.
    • Timezone: Dukungan parsing dan formatting timezone offset.

Instalasi

πŸ¦€ Rust (Cargo)

Tambahkan ke Cargo.toml:

[dependencies]
tanggalan = { git = "https://github.com/bect/tanggalan" }

πŸ“¦ Node.js / Web (NPM)

npm install @bect/tanggalan

🐍 Python (PyPI)

pip install tanggalan

Penggunaan

Rust

use tanggalan::core::JavaneseDate;
use chrono::NaiveDate;

fn main() {
    // 17 Agustus 2023
    let date = NaiveDate::from_ymd_opt(2023, 8, 17).unwrap()
        .and_hms_opt(12, 0, 0).unwrap();
    
    let jd = JavaneseDate::new(date);
    
    println!("Hari: {}", jd.dina);       // Kemis
    println!("Pasaran: {}", jd.pasaran); // Legi
    println!("Lengkap: {}", jd);         // Kemis Legi, 29 Sura 1957 Ja, Bedhug
}

JavaScript / TypeScript

import { Tanggalan } from "@bect/tanggalan";

// Tanggal saat ini
const now = new Tanggalan();
console.log(now.toString());

// Tanggal tertentu
const date = new Tanggalan(new Date("2023-08-17"));
console.log(`Weton: ${date.dina} ${date.pasaran}`); // Weton: Kemis Legi

Python

from tanggalan import Tanggalan
from datetime import datetime

# Tanggal saat ini
now = Tanggalan()
print(now)

# Tanggal tertentu
date = Tanggalan(datetime(2023, 8, 17))
print(f"Weton: {date.dina} {date.pasaran}") # Weton: Kemis Legi

Format Output

Anda dapat memformat output menggunakan formatString(pattern).

const jd = new Tanggalan();
console.log(jd.formatString("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

Dokumentasi Teknis

Ingin tahu bagaimana perhitungan matematis di balik kalender ini?

Baca Algoritma Perhitungan Kalender Jawa.

Untuk full dokumentasi penggunaan beserta detail api untuk Python, Node/Web, dan Rust masing masing berada di folder docs.

Referensi

Lisensi

ISC

About

Pustaka JavaScript lengkap untuk konversi Kalender Jawa. Mendukung Weton, Wuku, Neptu, Mongso (Solar), dan Waktu Tradisional (Wektu).

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages