# Datemagic + Javanese Dating System

Back then when I was a first year, I make this program to calculate things related to birthdate and Javanese Dating System. I think it will be nice if I compile the calculations and explain the logic. Hopefully I can also explain how Javanese Dating (the month and the day, not the lover kind) works.

### Birthdate Calculation

#### Leap Year

Leap year calculation was designed way back at Julius Caesar’s time.  However, after some correction, the one that we use in our calendar right now is based on Gregorian calendar started on 1583. So, after 1583, leap year is defined as a year with integer multiples of 4. However, for integer multiples of 100, if it’s not an integer multiple of 400, those years aren’t leap years. This calculation results in 365.2425 average of one year, closer to the definition of a solar year . In leap year, one additional date (February 29th) is added to the calendar making one year lasts 366 days.

The pseudo code (shamelessly taken from Wikipedia):

```if year is divisible by 400 then
is_leap_year
else if year is divisible by 100 then
not_leap_year
else if year is divisible by 4 then
is_leap_year
else
not_leap_year```

#### Weekday

Ther are some ways to calculate weekday, the one that quite simple (but need some memorization) is Doomsday algorithm

with Gregcode=1 and month=month+12 and year=year-1 for Jan and Feb (counted as month 13 and month 14 respectively). Result of the calculation then mod7, the end number is the weekday (with 0 as Sunday until 6 as Saturday).

#### Weton

Ok, weton is basically Javanese version of Zodiac and shio. In Javanese dating system, a week is described as 5 days (pasaran). If you combine solar calendar’s weekday with Javanese weekday, you will have 35 combinations (7×5). This, is defined as weton. The picture below is the table to count weton from year 1901 until year 2099 for first date of the month. Red is for leap year.

From the big table, a small table can be made with

intersection=(row code +column code) mod 5

From that equation, we can get the pasaran for first day for each month. After that, we can get modulus 5 of the date-1 for pasaran of the date, with  0=Legi, 1=Pahing, 2=Pon, 3=Wage,4=Kliwon (those are the name of the weekdays, by the way).

#### Zodiac and Shio

Zodiac and Shio are actually quite easy to calculate if you aren’t including the January-February shio difference (that, you can see everywhere like here). Basically you just need to count the date bracket and divide year with 12. Plus 8 first so because year 1 is monkey (code shio 9)

(year+8)/12

with =Rat, 1=Cow, 2=Tiger, 3=Rabbit, 4=Dragon, 5=Snake, 6=Horse, 7=Goat, 8=Monkey, 9=Chicken, 10=Dog, 11=Boar.

#### Neptu

Basically the Javanese version of zodiac fortune-telling. It is counted with adding neptu of weekday and neptu of pasaran. Neptu of weekday: Sunday(5), Monday(4),Tuesday(3),Wednesday(7),Thursday(8).Friday(6),Saturday(9). Neptu of pasaran : Legi(5), Pahing(9), Pon(7), Wage(4), Kliwon(8).

### 1000-day Celebration

In Javanese culture, there are celebrations held after a person passed away. The celebrations will be held after 7 days, 40 days, 100 days, 1 year, 2 year, and 1000 days. Because of these, it is important to calculate what date will the celebration be held. Usually people ask some elders to calculate these kind of calculation. Although it is usually not that ‘ good’ to use means other than the elders, it is possible to do the calculation by yourself, there are some software available to do this. Back then in my first year i did these programming for my basic programming class (hence this compilation). Nowadays, after my grandfather the go-to elder in my family passed away, sometimes my family ask me to calculate those important days.

Although the calculations are actually quite simple. There are some notes to be taken in this. Javanese calendar is based on lunar calendar, so the start of the day is not at midnight, but at sunset, so there is some adjustment for the calculation. If the time of the birth or the death is after 3 o’clock (actually it is Ashar), it is considered the next day. You have to take notes also that the day of the death is considered as the first day, so if it’s 3 days, it means 2 days from the date.

Without further ado, Here are how to find those days and pasaran (add one for time roughly after 15.00, for pasaran, add from original date and mod5)

 Celebration Add date Add day Add pasaran 3 days 3 2 2 7 days 7 6 1 40 days 40 4 4 100 days 100 1 4 1 year (lunar) 354 3 2 2 years (lunar) 708 2 4 1000 days 1000 5 4

That’s it. Pretty heavy on calculation but pretty educative, I hope.