Balinese Date
Convert Gregorian dates to the Balinese Saka Calendar system with this comprehensive C# library. BalineseDate provides immutable date objects supporting Pawukon cycles, Pawewaran systems (Eka through Dasa Wara), Paringkelan calculations, and traditional Balinese calendar utilities for filtering dates and retrieving astrological information. Ideal for applications requiring cultural calendar integration or localization for Balinese contexts.
com.adityarahmanda.balinese-date 
Install via UPM
Add to Unity Package Manager using this URL
https://www.pkglnk.dev/balinese-date.git?path=Packages/com.adityarahmanda.balinese-date README Markdown
Copy this to your project's README.md
## Installation
Add **Balinese Date** to your Unity project via Package Manager:
1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/balinese-date.git?path=Packages%2Fcom.adityarahmanda.balinese-date
```
[](https://www.pkglnk.dev/pkg/balinese-date)README
BalineseDate Unity Library
Introduction
BalineseDate is an open source library to develop Balinese Saka Calendar (Kalender Bali) in C# or Unity. This library is ported from Peradnya's Balinese Date Java Library.
Features
BalineseDate is designed to be immutable and have several features like:
- Pawukon
- Pawewaran
- Paringkelan
- Eka Jala Rsi
- Pratithi Samut Pada
- Dewasa
- Sasih
- Pawukon/Penanggal and Nguna Ratri.
- Pengalantaka Eka Sungsang Pon (before 2000) & Paing (2000 and after)
- Malamasa (< 1993), Sasih Kesinambungan (1993 - 2002), Nampih Sasih (>= 2003)
- Saka Year
- Rahinan
BalineseDate also have several utilities that can be used by developers like:
- Filter BalineseDate(s) from selected Date
- Filter BalineseDate(s) from selected BalineseDate List
- List of Rahinan given the BalineseDate
- List of Dewasa given the BalineseDate
Installation
Install via Clone
Clone this project using this command line
git clone https://github.com/adityarahmanda/unity-balinese-date.git
Install via Git Url
Open Unity Package Manager
Click
+Select
Add package from git URL...Paste this URL
https://github.com/adityarahmanda/unity-balinese-date.git?path=/Packages/com.adityarahmanda.balinese-date
- Click Add
Install via .unitypackage Releases
Go to Releases page
Download
.unitypackagefrom the latest releaseImport the downloaded
.unitypackageto your Unity project
Install via Scoped Registry
In Unity, Open
Edit -> Project Settings -> Package ManagerAdd a new Scoped Registry (or edit the existing OpenUPM entry)
Label Value Name Aditya Rahmanda URL https://package.openupm.com Scope(s) com.adityarahmanda Click
SaveorApplyOpen Window/Package Manager
There are several ways to add the package
- Go to My Registries section,
- Find
Aditya Rahmanda'sBalinese Datepackage - Click
InstallButton
or
- Click
+ - Select
Add package by name... - Paste
com.adityarahmanda.balinese-dateinto name - Click Add
Using in Code
Below code is an example of how to use of BalineseDate:
using System.Globalization;
using BalineseCalendar;
using TMPro;
using UnityEngine;
public class BalineseDateSample : MonoBehaviour
{
public enum InputType { Today, Custom }
[SerializeField] private TextMeshProUGUI dateInformationText;
[SerializeField] private InputType inputType;
[SerializeField] private int day;
[SerializeField] private int month;
[SerializeField] private int year;
private void Awake()
{
var balineseDateToday = inputType == InputType.Today ? BalineseDate.Today : new BalineseDate(year, month, day);
var dateInformation =
$"<b>Kalender Bali {balineseDateToday.date.ToString("dddd, dd MMMM yyyy", new CultureInfo("id-ID"))}</b>\n\n" +
$"<b>Penanggal:</b> {string.Join("/", balineseDateToday.sasihDay)}\n" +
$"<b>Sasih:</b> {balineseDateToday.sasih}\n" +
$"<b>Saka:</b> {balineseDateToday.saka}\n" +
"\n<b>Pawukon</b>\n" +
$"<b>Wuku:</b> {balineseDateToday.wuku}\n" +
"\n<b>Waweran</b>\n" +
$"<b>EkaWara:</b> {balineseDateToday.ekaWara}\n" +
$"<b>DwiWara:</b> {balineseDateToday.dwiWara}\n" +
$"<b>TriWara:</b> {balineseDateToday.triWara}\n" +
$"<b>CaturWara:</b> {balineseDateToday.caturWara}\n" +
$"<b>PancaWara:</b> {balineseDateToday.pancaWara}\n" +
$"<b>SadWara:</b> {balineseDateToday.sadWara}\n" +
$"<b>SaptaWara:</b> {balineseDateToday.saptaWara}\n" +
$"<b>AstaWara:</b> {balineseDateToday.astaWara}\n" +
$"<b>SangaWara:</b> {balineseDateToday.sangaWara}\n" +
$"<b>DasaWara:</b> {balineseDateToday.dasaWara}\n" +
"\n<b>Palelintangan</b>\n" +
$"<b>Lintang:</b> {balineseDateToday.lintang}\n" +
$"<b>Pancasuda:</b> {balineseDateToday.pancaSuda}\n" +
$"<b>Pararasan:</b> {balineseDateToday.pararasan}\n" +
"\n<b>Paringkelan</b>\n" +
$"<b>Ingkel Pandakan:</b> {balineseDateToday.ingkel}\n" +
$"<b>Ingkel Jejepan:</b> {balineseDateToday.jejepan}\n" +
"\n<b>Wariga Lainnya</b>\n" +
$"<b>Eka Jala Rsi:</b> {balineseDateToday.ekaJalaRsi}\n" +
$"<b>Pratithi Samut Pada:</b> {balineseDateToday.pratithiSamutPada}\n" +
$"<b>Watek Madya:</b> {balineseDateToday.watekMadya}\n" +
$"<b>Watek Alit:</b> {balineseDateToday.watekAlit}\n" +
$"<b>Rakam:</b> {balineseDateToday.rakam}\n" +
"\n<b>Dewasa dan Rahinan</b>\n" +
$"<b>Dewasa:</b> {string.Join(", ", balineseDateToday.GetDewasa())}\n" +
$"<b>Rahinan:</b> {string.Join(", ", balineseDateToday.GetRahinan())}\n";
dateInformationText.text = dateInformation;
}
}
Example output of the dateInformation would be
<b>Kalender Bali Selasa, 07 April 2026</b>
<b>Penanggal:</b> 5/6
<b>Sasih:</b> Kadasa
<b>Saka:</b> 1948
<b>Pawukon</b>
<b>Wuku:</b> Sinta
<b>Waweran</b>
<b>EkaWara:</b> Luang
<b>DwiWara:</b> Pepet
<b>TriWara:</b> Kajeng
<b>CaturWara:</b> Jaya
<b>PancaWara:</b> Wage
<b>SadWara:</b> Urukung
<b>SaptaWara:</b> Anggara
<b>AstaWara:</b> Guru
<b>SangaWara:</b> Dangu
<b>DasaWara:</b> Raja
<b>Palelintangan</b>
<b>Lintang:</b> Jung Sarat
<b>Pancasuda:</b> Lebu Katiup Angin
<b>Pararasan:</b> Laku Bumi
<b>Paringkelan</b>
<b>Ingkel Pandakan:</b> Wong
<b>Ingkel Jejepan:</b> Sato
<b>Wariga Lainnya</b>
<b>Eka Jala Rsi:</b> Manggih Suka
<b>Pratithi Samut Pada:</b> Jaramarana
<b>Watek Madya:</b> Watu
<b>Watek Alit:</b> Lembu
<b>Rakam:</b> Mantri Sinaroja
<b>Dewasa dan Rahinan</b>
<b>Dewasa:</b> Basah Gede, Carik Walangati, Salah Wadi, Banu Urung, Kala Empas, Kala Luang, Kala Sor, Titi Buwuk
<b>Rahinan:</b> Sabuh Emas
No comments yet. Be the first!