Skip to main content

A comprehensive library for Javanese Calendar conversion.

Project description

Tanggalan

Pustaka tanggalan menyediakan binding Python untuk perhitungan kalender Jawa (ditulis dengan Rust).

Instalasi

Instal paket menggunakan pip:

pip install tanggalan

Penggunaan Dasar

Kelas utama adalah Tanggalan.

from tanggalan import Tanggalan
from datetime import datetime

# 1. Tanggal Saat Ini
now = Tanggalan()
print(f"Sekarang: {now}")
# Output: Sekarang: Jemuah Legi, 9 Pasa 1876 Ja, Lingsir Wengi (contoh)

# 2. Tanggal Tertentu (17 Agustus 1945)
# Gunakan datetime standar Python
merdeka = datetime(1945, 8, 17, 10, 0, 0)
jd = Tanggalan(merdeka)

# 3. Akses Properti
print(f"Dina: {jd.dina}")       # Jemuah
print(f"Pasaran: {jd.pasaran}") # Legi
print(f"Wuku: {jd.wuku}")       # Manahil
print(f"Neptu: {jd.neptu}")     # 11 (Jemuah 6 + Legi 5)

# Output default (__str__)
print(jd) 
# Output: Jemuah Legi, 9 Pasa 1876 Ja, Lingsir Wengi

Parsing String

Anda dapat membuat objek Tanggalan dari string tanggal Jawa.

from tanggalan import Tanggalan

input_str = "28 Jumadilawal 1955"
fmt = "d M yyyy"

try:
    jd = Tanggalan.from_string(input_str, fmt)
    print(f"Berhasil parse: {jd}")
    print(f"Weton: {jd.dina} {jd.pasaran}")
except ValueError as e:
    print(f"Error: {e}")

Formatting

Gunakan method format_string untuk memformat output sesuai kebutuhan.

pattern = "Dina: D, Pasaran: P, Mongso: MS"
print(jd.format_string(pattern))
# Output: Dina: Jemuah, Pasaran: Legi, Mongso: Karo

Token Format

Berikut adalah daftar token yang dapat digunakan dalam string format:

Token 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 (1-12) 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

Fitur Lanjutan

Mencari Weton Berikutnya (weton_sabanjure)

Mencari tanggal terdekat di masa depan yang memiliki kombinasi Dina dan Pasaran tertentu.

try:
    next_weton = jd.weton_sabanjure("Senen Legi")
    print(f"Senen Legi berikutnya: {next_weton}")
except ValueError as e:
    print(f"Error: {e}")

Cek Tahun Kabisat (is_kabisat)

if jd.is_kabisat():
    print(f"Tahun {jd.year} adalah tahun kabisat (355 hari)")
else:
    print(f"Tahun {jd.year} adalah tahun basit (354 hari)")

Referensi API

Class Tanggalan

Static Methods

  • from_string(input: str, format: str) -> Tanggalan: Membuat instance dari string tanggal Jawa.

Properties (String)

Properti Tipe Deskripsi
dina str Nama hari (misal: "Senen")
pasaran str Nama pasaran (misal: "Wage")
wulan str Nama bulan (misal: "Sura")
taun str Nama tahun (misal: "Ehe")
wuku str Nama wuku
mongso str Nama mongso
wektu str Waktu hari (misal: "Surup")

Methods

  • get_date() -> int: Tanggal Jawa (1-30).
  • get_day() -> int: Indeks hari (0=Minggu, 6=Setu).
  • get_month() -> int: Indeks bulan (0=Sura).
  • get_full_year() -> int: Tahun Jawa.
  • get_pasaran() -> int: Indeks pasaran (0=Legi).
  • get_neptu() -> int: Total nilai neptu.
  • get_wuku() -> int: Indeks wuku (0=Sinta).
  • get_mongso() -> int: Indeks mongso (0=Kasa).
  • get_wektu() -> str: Waktu hari (misal: "Surup").
  • get_gregorian_date() -> datetime: Mengembalikan objek datetime native.
  • is_kabisat() -> bool: Mengecek apakah tahun Jawa saat ini adalah tahun kabisat (355 hari).
  • weton_sabanjure(weton: str) -> Tanggalan: Mencari tanggal terjadinya weton tertentu di masa depan.
  • format_string(pattern: str) -> str: Memformat tanggal menjadi string menggunakan token.
  • __str__() -> str: Representasi string default.

Referensi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tanggalan-1.1.2.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tanggalan-1.1.2-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file tanggalan-1.1.2.tar.gz.

File metadata

  • Download URL: tanggalan-1.1.2.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tanggalan-1.1.2.tar.gz
Algorithm Hash digest
SHA256 dc15b64b502f5be819ecfe0b6c2210e6e9f3dcc0bbfd1cd9a09e6b6f08c5d1ce
MD5 009f9f03e412a59d42e105435a1a0646
BLAKE2b-256 9a98e2cb0d2d536fbcb596a0b086bbe0cb9a67c164e0866c826f9d202b43b6b9

See more details on using hashes here.

File details

Details for the file tanggalan-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: tanggalan-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tanggalan-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ce4d74dacf90de8a785f9a4a1b7982c866fd21ea4175759c20d9e3c8dd03227e
MD5 41277a67b6f5ec1f588a61bbb7bb048c
BLAKE2b-256 7733d99b1fbe6fb1b8252b0d611fba43c1127cdb8976c3c4cfa6f970e5d1da62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page