Kata Baru

Tentang Pikiran, Perkataan, dan Perbuatan

Menghitung Hari Libur Keagamaan (Kristen) dengan VB Classic


Setelah kemarin saya merilis Kalender Indonesia, kini saya akan membagikan kode sumber yang digunakan untuk penghitungan hari libur. Mari kita mulai dengan menghitung hari libur keagamaan Kristen, diantaranya: Paskah, Wafat Isa Al-Masih, dan Kenaikan Isa Al-Masih. Untuk hari raya Natal tidak perlu dihitung😀 karena tanggalnya bersifat absolut.


Buatlah sebuah module pada IDE VB6, namai dengan “basKristen”, kemudian ketikkan kode di bawah ini:

Option Explicit

Public Paskah As Date
Public WafatIsa As Date
Public KenaikanIsa As Date
Public Natal As Date
Public TahunBaru As Date

Sub Kristen(intTahun As Integer)
    Dim intA As Integer
    Dim intB As Integer
    Dim intC As Integer
    Dim intD As Integer
    Dim intE As Integer
    Dim intF As Integer
    Dim intG As Integer
    Dim intH As Integer
    Dim intI As Integer
    Dim intJ As Integer
    Dim intK As Integer
    Dim intL As Integer
    Dim intM As Integer
    Dim intN As Integer
    Dim intO As Integer

    intA = intTahun Mod 19
    intB = intTahun Mod 4
    intC = intTahun Mod 7

    intH = IIf((intTahun >= 1900 And intTahun <= 2099), 5, 0)
    intI = IIf((intTahun >= 2100 And intTahun <= 2199), 6, 0)
    intJ = IIf((intTahun >= 2200 And intTahun <= 2299), 0, 0)
    intK = intH + intI + intJ
    intL = IIf((intTahun >= 1900 And intTahun <= 2099), 24, 0)
    intM = IIf((intTahun >= 2100 And intTahun <= 2199), 24, 0)
    intN = IIf((intTahun >= 2200 And intTahun <= 2299), 25, 0)
    intO = intL + intM + intN

    intD = ((19 * intA) + intO) Mod 30
    intE = ((2 * intB) + (4 * intC) + (6 * intD) + intK) Mod 7
    intF = IIf(intD + intE < 10, 3, 4)
    intG = IIf(intD + intE < 10, intD + intE + 22, intD + intE - 9)

    Paskah = DateSerial(intTahun, intF, intG)
    WafatIsa = DateAdd("d", -2, Paskah)
    KenaikanIsa = DateAdd("d", 39, Paskah)
    TahunBaru = DateSerial(intTahun, 1, 1)
    Natal = DateSerial(intTahun, 12, 25)
End Sub

Maaf saya tidak dapat menjelaskan bagian per bagian dari kode di atas, karena saya hanya mentranslasikan dari rumus Excel ke bahasa VB6😀

Jika Anda tidak biasa memprogram dengan bahasa VB6, silakan ditranslasikan pada bahasa pemograman lain yang Anda kuasai.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: