Search This Blog

Saturday, June 15, 2013

Algorithm, Program and Calculation of Myanmar Calendar

Read this article in English

မြန်မာ ပြက္ခဒိန် တွက်တဲ့ အခါ ပိုမို မြန်ဆန်လွယ်ကူ စေမယ့် ညီမျှခြင်းများကို တင်ပြမှာဖြစ်ပြီး၊ ပြီးခဲ့တဲ့ မြန်မာ ပြက္ခဒိန် ရက်ကိုပဲ ဖြစ်ဖြစ်၊ နောက်လာမည့် မြန်မာ ပြက္ခဒိန်ရက် ကို ကြိုပြီးပဲဖြစ်ဖြစ် ဘယ်လို တွက်မလဲ ဆိုတာ ဆွေးနွေးပါမယ်။ မြန်မာ ပြက္ခဒိန် ရက်စွဲ တစ်ခုရဲ့ မြန်မာ ခုနှစ်၊ မြန်မာလ၊ လဆန်း လဆုတ်၊ မြန်မာရက်၊ အဲဒီနှစ်က ဝါထပ် မထပ်၊ ထပ်ရင် လည်း ဝါကြီးလား၊ ဝါငယ်လား ဆိုတာ ကိုအလွယ်တကူ တွက်ထုတ်နိုင်ဖို့ ကိန်းသေတွေ၊ ဖော်မြူလာတွေ၊ တွက်ချက်ပုံ အဆင့် တွေ ကို ရှင်းရှင်းလင်းလင်း တင်ပြပါမယ်။ မြန်မာ ပြက္ခဒိန်၊ နတ္ခတ် အခေါ်အဝေါ် တွေနဲ့ မရင်းနှီးရင် တောင်မှ အလွယ် တစ်ကူ နားလည် နိုင်မှာပါ။




၁။ နိဒါန်း

မြန်မာ ပြက္ခဒိန် တွက်နည်း အတွက် ညီမျှခြင်း ဖော်မြူလာ အသစ်များကို စဉ်းစားတွက်ထုတ် ဖြစ်စေတဲ့ အကြောင်းတချို့ရှိပါတယ်။ ပထမ အချက်ကတော့ ရိုးရှင်းတိကျ တဲ့ မြန်မာ ပြက္ခဒိန်တွက်နည်း အခုထိ မတွေ့မိ သေးလို့ပါ။ လက်လှမ်း မှီသလောက် လိုက်ဖတ်ကြည့်တော့လည်း အချို့က မြန်မာပြက္ခဒိန်ကို ကြိုတွက်လို့မရ၊ အချို့က နှစ်အနည်းငယ်သာ ကြိုတွက်လို့ ရတယ်လို့ ပြောကြပါတယ်။ ဦးအုန်းကြိုင် [Kyaing, 1964] စာမျက်နှာ ၂၉၀ မှာ "ရှေ့အနာဂတ် နှစ်များ၏ပက္ခဒိန်ကို စီစဉ်လိုသော် ပက္ခဒိန် တွက်နည်း မရှိချေ။ ဤနေရာ၌ ကမ္ဘာသုံး ပက္ခဒိန်သည် တင်ကြို၍ စီစဉ်နိုင်သည်။ မြန်မာပက္ခဒိန် သည် ဝါထပ်ရက်ငင် မူသေကိန်းမရှိ။ ဝါထပ်ရက်ငင်နှစ်များသည် နိုင်ငံတော် အစိုးရ အမိန့်ထုတ်ပြီးသော ပက္ခဒိန်များ၌သာလျှင် အသုံးပြုရသဖြင့် ရှေ့နှစ်ကာလများအတွက် ပက္ခဒိန်စီစဉ်ရန် မဖြစ်နိုင်ချေ" လို့ဆိုထားပါတယ်။ အခု တင်ပြမယ့် တွက်နည်း မှာတော့ ဒုတိယ ဝါဆိုလပြည့် အပေါ်မှာပဲ မှီခိုတာမို့ နောက်လာမယ့် အနာဂတ်နှစ်တွေ အတွက် ကြိုတွက်နိုင်ပါတယ်။ တရားဝင်ထုတ်ပြန်သတ်မှတ်တဲ့ ရက်တွေကတော့ နိုင်ငံတော်ပြက္ခဒိန် အကြံပေးအဖွဲ့ ပေါ်မှာ မူတည်ပါတယ်။

ဒုတိယ အချက်ကတော့ လွယ်ကူမှုပါ။ လက်ရှိ မြန်မာ ပြက္ခဒိန် တွက်နည်း ကို လေ့လာဖို့ မရင်းနှီးတဲ့ အခေါ်အဝေါ်များ၊ ရှုပ်ထွေးတဲ့ တွက်ချက်မှု အဆင့်တွေ ကို လေ့လာဖို့လိုမှာပါ။ ရှေးပညာရှင်များက အဓိကရှာ ချင်တဲ့ ရက်ကို တွက်ဖို့ သာမကပဲ သူ့တို့ ခေတ်ရဲ့ လိုအပ်ချက်အရ ဒဿမကိန်းများ၊ အကြွင်းများ ကိုတွက်ရ အဆင်ပြေဖို့ ကိန်းရှင်တွေ၊ အခေါ်အဝေါ်အသစ်တွေ၊ တွက်ချက်မှု အဆင့်ဆင့်တွေ ကို ကြံဆခဲ့ကြပါတယ်။ အခုခေတ် ကွန်ပျူတာပေါ်မှာ တွက်တဲ့အခါမှာတော့ ဂဏန်းကိုင်လွယ်ဖို့ အဓိက ရည်ရွယ်တဲ့ အဆင့်တွေကို အများကြီး ရိုးရှင်းသွားအောင် လုပ်နိုင်ပါတယ် ။ အခု ကျွန်တော်တို့ တင်ပြ ဆွေးနွေးမယ့် နည်းမှာ သူရိယနှစ် (solar year) နဲ့ စန္ဒြမာသ လ (lunar month) တို့လောက်သာ သိဖို့လိုပါမယ်။ တွက်ချက်မှု အားလုံးက အဲဒီ တန်ဖိုးနှစ်ခု ပေါ်မှာပဲ အဓိက မှီခိုပါတယ်။ တိကျလွယ်ကူ တဲ့ အဆင့်တွေကို ရှင်းရှင်းလင်းလင်း ဖော်ပြထားတာမို့ လူအများ အလွယ်တကူ တွက်နိုင်မယ် လို့ မျှော်လင့်ပါတယ်။

တတိယ အချက်ကတော့ မြန်ဆန် ထိရောက် မှုပါ။ ဦးအုန်းကြိုင် [Kyaing, 1964] က စာမျက်နှာ ၂၀၆ မှာ "ရက်ငင်သော နှစ်များ အတွက်ကိုမူကား တင်ကြို၍ အဆုံးအဖြတ်ပြုရန် ခဲယဉ်းလှ ပေသည်။ တင်ကြို၍ တွက်သော် အချိန်ကုန် စရိတ်ကုန်ကျများပေသည်။ နိုင်ငံတော်ပက္ခဒိန် အကြံပေးအဖွဲ့သည် နှစ်ငါးဆယ်ပက္ခဒိန် စီစဉ်ရေးဆွဲခဲ့ရာ၊ စရိတ်အတော်ပင် ကုန်ကျခဲ့ကြောင်း သိရ၏။" လို့ဆိုထားတာမို့ လက်ရှိတွက်နည်းမှာ ကိန်းဂဏန်းတွေ ကို ခက်ခက်ခဲခဲ၊ ကြိမ်ဖန်များစွာ တွက်ဖို့လိုမယ်လို့ ခန့်မှန်းမိ ပါတယ်။ ကျွန်တော်တို့ တင်ပြမည့် နည်းမှာတော့ မြန်မာ ပြက္ခဒိန်ရဲ့ ကြိုက်တဲ့ အနာဂတ် နှစ်၊လ၊ရက် ကို အဆင့် အနည်းငယ်နဲ့ မိနစ်အနည်းငယ် အတွင်း အလွယ်အကူ တွက်ထုတ်နိုင်ပါမယ်။

လက်ရှိတွက်နည်းတွေမှာ မြန်မာ ပြက္ခဒိန်နဲ့ ကမ္ဘာသုံးပြက္ခဒိန် ရက်စွဲတွေကို အပြန်အလှန် ပြောင်းနိုင်ဖို့ အတွက် စဉ်းစားထားတာမျိုး မပါဝင်ပါဘူး။ ကျွန်တော်တို့ တင်ပြမည့် နည်းမှာတော့ မြန်မာရက်စွဲ ကနေ တခြားပြက္ခဒိန် ရက်စွဲတွေကို အပြန်အလှန်ပြောင်း နိုင်ပြီး ညီမျှခြင်းများ ကိုပါ အသေးစိတ် ဖော်ပြထားပါတယ်။

ဒီနေရာမှာ မြန်မာ ပြက္ခဒိန် တွက်ပုံတွက်နည်း (Algorithm) သာမက ကွန်ပျူတာ ပရိုဂရမ် နဲ့ နမူနာ တွက်ချက်မှု တွေကိုပါ ဖော်ပြလိုပါတယ်။ လက်ရှိ တွေ့ရတဲ့ မြန်မာ ပြက္ခဒိန် ပရိုဂရမ် တချို့က ကိုဝဏ္ဏကို ရဲ့ ပရိုဂရမ် [Ko, 2009] ကို အခြေခံထားပါတယ်။ အဲဒီ ပရိုဂရမ်မှာ ဂျူလီယန်နေ့ အရေအတွက် (Julian Day Number) သုံးထားတာကို တွေ့ရပါတယ်။ အဲဒီ ပရိုဂရမ်က မြန်မာနှစ်တစ်နှစ် ကို ဝါထပ်မထပ်၊ ဝါကြီးလား၊ ဝါငယ်လားဆိုတာ ကိုတွက်မထားပါဘူး။ အခု ကျွန်တော်တို့ ဖော်ပြမယ့် ပရိုဂရမ်မှာတော့ ပြည့်ပြည့်စုံစုံ ဖြစ်အောင်တွက်ချက်ထား ပါတယ်။

တွက်ချက်မှုအားလုံးက မြန်မာစံတော်ချိန် (Myanmar Standard Time UTC+06:30 ) ပေါ်မှာ အခြေခံထားပြီး အဲဒါက လောင်ဂျီကျု ၉၇° ၃၀' ပေါ်မှာ အခြေခံပါတယ်။



၂။ ဂျူလီယန်ရက်နံပါတ်

မြန်မာ ပြက္ခဒိန် အစရှိတဲ့ ပြက္ခဒိန်တွေမှာ ရက်အရေအတွက် ပေါ်မှာ အခြေခံပြီး တွက်ရင် ပိုပြီးလွယ်ကူ အဆင်ပြေပါတယ်။ ရက်တွေကို ရေတွက်တဲ့ အခါ ဘယ်အချိန်ကစ ပြီး ရေတွက်ရမလဲလို့ အစပြုတဲ့ အချိန် (epoch) ကို တစ်ခုခု သတ်မှတ်ဖို့ လိုလာပါတယ်။ အဲဒီလို သတ်မှတ်တဲ့ အခါ လူသိများပြီးသား ဂျူလီယန်ရက်နံပါတ် (JDN) ဆိုတဲ့ သတ်မှတ်ချက် ကို ပဲ အလွယ်တကူ ယူသုံးလိုက်ပါမယ်။ ဂျူလီယန် ရက်နံပါတ် ဆိုတာက ဂရီဂိုရီယမ် ပြက္ခဒိန် ၄၇၁၄ BC နိုဝင်ဘာ ၂၄ ရက်နေ့ နေ့လည် မွန်းတည့်ချိန်က စတင်ပြီး ရေတွက်လာတဲ့ ရက်အရေအတွက် စုစုပေါင်းဖြစ်ပါတယ်။ ပြက္ခဒိန် အမျိုးမျိုးရဲ့ ရက်နဲ့ ဂျူလီယန် ရက်နံပါတ် အပြန်အလှန်ပြောင်းလဲ တဲ့ နည်းတွေကလည်း ရှိပြီးသားများလို့ အလွယ်တကူတွေ့နိုင် ပါတယ်။ ကမ္ဘာသုံး ပြက္ခဒိန် ရက်တစ်ရက် အတွက် မြန်မာ ရက်ကို တွက်မယ်ဆိုရင် အဲဒီပြက္ခဒိန်ရက် ကို ဂျူလီယန် ရက်နံပါတ် ပြောင်း၊ ရတဲ့ နံပါတ်ကနေ မြန်မာ ရက်ကို ပြန်တွက်ယူ လို့ရပါတယ်။ ကမ္ဘာသုံး ပြက္ခဒိန် ရက် ကနေ ဂျူလီယန် ရက်နံပါတ် ပြောင်းတဲ့ နည်းတစ်ခု [UTSA, 2011] ကိုအောက်မှာ တွေ့နိုင်ပါတယ်။ အဲဒီမှာ floor ဆိုတဲ့ လုပ်ဆောင်ချက် က ကိန်းပြည့်ကိုပဲယူပြီး ဒဿမကို ဖြုတ်လိုက်တာပါ။ ဥပမာ floor(၃.၂)=\( \lfloor ၃.၂ \rfloor \) ဆိုရင် အဖြေက ၃ ဖြစ်ပါတယ်။

$$ \begin{align} a &= \lfloor \frac{14-month}{12} \rfloor \\ y &=year+4800-a \\ m &=month+12 a-3 \\ jdn &=day+\lfloor \frac{153 m+2}{5} \rfloor + 365 y+\lfloor \frac{y}{4} \rfloor - \lfloor \frac{y}{100} \rfloor +\lfloor \frac{y}{400} \rfloor -32045 \end{align} $$ အဲဒီမှာ \( jdn \) က ဂျူလီယန် ရက်နံပါတ် ဖြစ်ပါတယ်။

ဂျူလီယန် ရက်နံပါတ် ကနေကမ္ဘာသုံး ပြက္ခဒိန် ရက် ပြောင်းတဲ့ နည်း [Myers, 2011] ကိုလည်း အောက်မှာ ဖော်ပြထားပါတယ်။ အဲဒီမှာ \( y \) ကနှစ်၊ \( m \) က လ၊ \( d \) က နေ့၊ \( j \) က ဂျူလီယန် ရက်နံပါတ် ဖြစ်ပါတယ်။
$$ \begin{align} j&=j-1721119 \\ y&=\lfloor{\frac{4j-1}{146097}}\rfloor \\ j&=4 j - 1 - 146097 y \\ d&=\lfloor \frac{j}{4} \rfloor \\ j&=\lfloor \frac{4d+3}{1461} \rfloor \\ d&=4 d+ 3 - 1461 j \\ d&=\lfloor \frac{d+4}{4} \rfloor \\ m&=\lfloor \frac{5d-3}{153} \rfloor \\ d&=5 d -3 - 153 m \\ d&=\lfloor \frac{d+5}{5} \rfloor \\ y&=100 y+j \\ & \text{if m<10 then} \\ & m=m+3 \\ & \text{else} \\ & m=m-9 \\ & y=y+1 \\ & \text{end if} \end{align} $$

ဥပမာ။ ။၂၀၀၀ ခု ဇန်နဝါရီ ၁ ရက်နေ့ အတွက်ဂျူလီယန် ရက်နံပါတ် ရှာကြည့် ပါမယ်။

အဖြေ။ ။
year = 2000
month = 1
day = 1
a = floor((14-month)/12) = 1
y = year+4800-a = 2000+4800-1 = 6799
m = month+12a-3 = 1+12-3 = 10
jdn = 1+306+365*6799+1699-67+16-32045
= 2451545

ဂျူလီယန် ရက်အရေ အတွက် ၂၄၅၁၅၄၅ လို့ ရပါမယ်။ မတွက်ချင်ရင် အောက်ကလင့်ခ် မှာ သွားပြောင်း ကြည့်နိုင်ပါတယ်။

Julian Date Converter >>


ဂျူလီယန် ရက်စွဲ (Julian Date) ဆိုတာကတော့ ဂျူလီယန် ရက်နံပါတ် ကိုပဲ အချိန် နာရီ၊ မိနစ်၊ စက္ကန့် တွေကိုပါ ဒဿမကိန်းပြောင်းပြီး ထည့်တွက်ထားတာပါ။ နာရီကို ရက်ပြောင်းရာမှာ တစ်ရက် ကို ၂၄ နာရီ ရှိတာကြောင့် ၂၄ နဲ့ စားပါတယ်။ ဒါပေမယ့် ဂျူလီယန် ရက်နံပါတ် က မွန်းတည့်ချိန်က စတာမို့ မစားခင် ၁၂ နာရီပြန်နုတ်ပေးဖို့ လိုပါတယ်။ နာရီ \(h\) ၊ မိနစ် \(n\)၊ စက္ကန့် \(s\) တွေကို ရက်ပြောင်းလို့ ရတဲ့ ရက်အပိုင်းကိန်းကို \(df\) လို့ ခေါ်မယ်ဆိုရင် သူ့ကို အောက်ပါအတိုင်းရှာနိုင်ပါတယ်။ $$ df = \frac{h-12}{24} + \frac{n}{1440} + \frac{s}{86400} $$ ဒါဆိုရင် ဂျူလီယန် ရက်စွဲ ကို အောက်ကအတိုင်းရပါတယ်။ $$ jd = jdn + df $$ ဂျူလီယန် ရက်နံပါတ် ကို ဂျူလီယန်ရက်စွဲကနေ အောက်ပါအတိုင်းပြန်ရှာနိုင်ပါတယ်။ အဲဒီမှာ round(x) = \( \lfloor x \rceil \) က အနီးဆုံးကိန်းပြည့်ကိုယူတဲ့ လုပ်ဆောင်ချက်ဖြစ်ပါတယ်။
$$jdn = \lfloor jd \rceil $$

ဥပမာ။ ။၂၀၀၀ ခု ဇန်နဝါရီ ၁ ရက်နေ့ ၊ ညနေ ၆ နာရီ အတွက်ဂျူလီယန် ရက်စွဲ ရှာကြည့် ပါ။

အဖြေ။ ။
၂၀၀၀ ခု ဇန်နဝါရီ ၁ ရက်နေ့ ရဲ့ ဂျူလီယန် ရက်အရေ အတွက် က ၂၄၅၁၅၄၅ လို့ ရပါမယ်။
ညနေ ၆ နာရီကို ၂၄ နာရီပုံစံ ပြောင်းရင် ၁၈ နာရီ လို့ ရပါတယ်။
နေ့လည် ၁၂ နာရီကနေ စကြာချိန်မို့ လို့ ရက်အပိုင်းကိန်း ပြောင်းတော့ (၁၈ - ၁၂) / ၂၄ = ၀.၂၅ ရက် လို့ရပါတယ်။
ဂျူလီယန် ရက်စွဲ က ၂၄၅၁၅၄၅ + ၀.၂၅ = ၂၄၅၁၅၄၅.၂၅ လို့ရပါတယ်။



ဂျူလီယန်ရက်စွဲ မှ ဂရီဂိုရီရမ်ရက်စွဲ ပြောင်းလိုပါက အောက်က ဝက်ဘ်စာမျက်နှာမှာ သွားပြောင်းနိုင်ပါတယ်။

Julian Date to Western Date Converter >>


တင်နိုင်တိုး ရေးတဲ့ မြန်မာ - အင်္ဂလိပ် ပြက္ခဒိန် စာအုပ် ထဲမှာ မြန်မာနှစ် ၁ ခု ကနေ ၁၃၅၂ ခုနှစ်ထိ ရက်စွဲတွေကို ဖော်ပြထားပါတယ် [Toe, 1999] ။ အဲဒီ စာအုပ်ထဲမှာ သမိုင်းအထောက်အထား တချို့လည်းတွေ့ပါတယ်။ ပြက္ခဒိန် ရက်စွဲတွေနဲ့ ပတ်သတ်လို့ ရှိပြီးသား သမိုင်းအထောက်အထားတွေက ဗြိတိသျှ အင်ပါယာ (အမေရိကန် အပါအဝင်) က ဂရီဂိုရီယန် ပြက္ခဒိန် မသုံးခင်က ဟာတွေဆိုရင် ဂျူလီယန် ပြက္ခဒိန် ရက်စွဲတွေနဲ့ပါ။ အဲဒီခေတ်တွေမှာ ဂျူလီယန် ပြက္ခဒိန်က တကမ္ဘာလုံး တော်တော် တွင်တွင်ကျယ်ကျယ် သုံးခဲ့ပုံပေါ်ပါတယ်။ အဲဒီတော့ ဂရီဂိုရီယန်ကို နောက်ပြန်တွက်ပြီး ဂရီဂိုရီယန်-မြန်မာ ပြက္ခဒိန် ဆိုပြီးလုပ်မယ့်အစား အဲဒီစာအုပ်ထဲကလို အင်္ဂလိပ် - မြန်မာ ပြက္ခဒိန်ဆိုပြီး လုပ်တာက အဲဒီရက်စွဲတွေကို ကြည့်မယ့်သူတွေ အတွက် ပိုအဆင်ပြေ၊ အသုံးဝင်နိုင်တယ် လို့ ထင်ပါတယ်။ အင်္ဂလိပ် ပြက္ခဒိန် မှာ ဂျူလီယန် ပြက္ခဒိန် ရက်စွဲ ၁၇၅၂ စက်တင်ဘာ ၂ ရက်နေ့ ပြီးတဲ့ နောက်တစ်ရက် ကနေ ဂရီဂိုရီယန် ပြက္ခဒိန် ရက်စွဲ ၁၇၅၂ စက်တင်ဘာ ၁၄ ရက် အနေနဲ့ ၁၁ ရက်ကျော်ပြီး စပြောင်းသုံး ခဲ့ပါတယ်။ ဂျူလီယန် ပြက္ခဒိန် ရက်စွဲကနေ ဂျူလီယန် ရက်နံပါတ် ပြောင်းတဲ့ နည်းတခုကို အောက်မှာ ပြထားပါတယ်။
$$ \begin{align} a &= \lfloor \frac{14-month}{12} \rfloor \\ y &=year+4800-a \\ m &=month+12 a-3 \\ jdn &=day+\lfloor \frac{153 m+2}{5} \rfloor + 365 y+\lfloor \frac{y}{4} \rfloor -32083 \end{align} $$ အဲဒီမှာ \( jdn \) က ဂျူလီယန် ရက်နံပါတ် ဖြစ်ပါတယ်။

ဂျူလီယန် ရက်နံပါတ်ကနေ ဂျူလီယန် ပြက္ခဒိန် ရက်စွဲကို ပြန်ပြောင်းဖို့ Jefferys [Jefferys, 1998] ရဲ့ နည်းကို အောက်မှာ တွေ့နိုင်ပါတယ်။
$$ \begin{align} b &= jdn + 1524 \\ c &=\lfloor \frac{b-122.1}{365.25} \rfloor \\ f &=\lfloor 365.25 \times c \rfloor \\ e &=\lfloor \frac{b-f}{30.6001} \rfloor \\ & \text{if e>13 then} \\ & m=e-13 \\ & \text{else} \\ & m=e-1 \\ & \text{end if} \\ d &=b-f-\lfloor 30.6001*e \rfloor \\ & \text{if m<3 then} \\ & y=c-4715 \\ & \text{else} \\ & y=c-4716 \\ & \text{end if} \end{align} $$ အဲဒီမှာ \( y \) ကနှစ်၊ \( m \) က လ၊ \( d \) က နေ့၊ \( jdn \) က ဂျူလီယန် ရက်နံပါတ် ဖြစ်ပါတယ်။

ဂျူလီယန် ရက်စွဲ အပြန်အလှန် ပြောင်းပေးတဲ့ javascript ပရိုဂရမ် ကုဒ်တွေကို အောက်မှာ ဖော်ပြထားပါတယ်။

//Julian date to Western date
//Credit4 Gregorian date: http://pmyers.pcug.org.au/General/JulianDates.htm
//Credit4 Julian Calendar: http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html
//input: (jd:julian date,
  // ct:calendar type [Optional argument: 0=english (default), 1=Gregorian, 2=Julian]
  // SG: Beginning of Gregorian calendar in JDN [Optional argument: (default=2361222)])
//output: Western date (y=year, m=month, d=day, h=hour, n=minute, s=second)
function j2w(jd,ct,SG) {
 ct=ct||0; SG=SG||2361222;//Gregorian start in English calendar (1752/Sep/14)
 var j,jf,y,m,d,h,n,s;
 if (ct==2 || (ct==0 && (jd < SG))) {
  var b,c,f,e;
  j=Math.floor(jd+0.5); jf=jd+0.5-j;
  b=j+1524; c=Math.floor((b-122.1)/365.25); f=Math.floor(365.25*c);
  e=Math.floor((b-f)/30.6001); m=(e > 13)?(e-13):(e-1);
  d=b-f-Math.floor(30.6001*e); y=m < 3 ? (c-4715) : (c-4716);
 }
 else{
  j=Math.floor(jd+0.5); jf=jd+0.5-j; j-=1721119;
  y=Math.floor((4*j-1)/146097); j=4*j-1-146097*y; d=Math.floor(j/4);
  j=Math.floor((4*d+3)/1461); d=4*d+3-1461*j;
  d=Math.floor((d+4)/4); m=Math.floor((5*d-3)/153); d=5*d-3-153*m;
  d=Math.floor((d+5)/5); y=100*y+j;
  if(m<10) {m+=3;}
  else {m-=9; y=y+1;}
 }
 jf*=24; h=Math.floor(jf); jf=(jf-h)*60; n=Math.floor(jf); s=(jf-n)*60;
 return {y:y,m:m,d:d,h:h,n:n,s:s};
}


//Western date to Julian day number
//Credit4 Gregorian2JD: http://www.cs.utsa.edu/~cs1063/projects/Spring2011/Project1/jdn-explanation.html
//input: (y: year, m: month, d: day,
  // ct:calendar type [Optional argument: 0=english (default), 1=Gregorian, 2=Julian]
  // SG: Beginning of Gregorian calendar in JDN [Optional argument: (default=2361222)])
//output: Julian day number
function w2j(y,m,d,ct,SG) {
 ct=ct||0; SG=SG||2361222;//Gregorian start in English calendar (1752/Sep/14)
 var a=Math.floor((14-m)/12); y=y+4800-a; m=m+(12*a)-3;
 var jd=d+Math.floor((153*m+2)/5)+(365*y)+Math.floor(y/4);
 if (ct==1) jd=jd-Math.floor(y/100)+Math.floor(y/400)-32045;
 else if (ct==2) jd=jd-32083;
 else {
  jd=jd-Math.floor(y/100)+Math.floor(y/400)-32045;
  if(jdSG) jd=SG;
  }
 }
 return jd;
}
//-------------------------------------------------------------------------
//Time to Fraction of day starting from 12 noon
//input: (h=hour, n=minute, s=second) output: (d: fraction of day)
function t2d(h,n,s) { return ((h-12)/24+n/1440+s/86400);}
//-------------------------------------------------------------------------



၃။ မြန်မာနှစ်

မြန်မာ ပြက္ခဒိန်မှာ သူရိယနှစ် တစ်နှစ်ရဲ့ ကြာချိန် (Solar Year) ကို ၁၅၇၇၉၁၇၈၂၈/၄၃၂၀၀၀၀ (၃၆၅.၂၅၈၇၅၆၅) ရက် လို့သတ်မှတ်ထား ပါတယ် [Irwin, 1909]။ အဲဒီ ကိန်းသေ ကို \(SY\) လို့ခေါ်လိုက် ပါမယ်။ $$ SY = 1577917828 / 4320000 $$ နှစ်တစ်နှစ် ရဲ့ နှစ်အစ အချိန် (အတာတက်ချိန်) ကို \( SY \) ( ၃၆၅.၂၅၈၇၅၆၅ ရက် ) ပေါင်းပေးရင် နောက်နှစ်ရဲ့ နှစ်အစ အချိန်ကို ရနိုင် ပါတယ်။ မြန်မာနှစ် သုညနှစ် ရဲ့ အစကိန်းသေကို \( MO \) လို့ခေါ်လိုက်ပါမယ်။ ကိန်းသေ \( SY \) နဲ့ \( MO \) ကို သုံးပြီး ကြိုက်တဲ့ မြန်မာနှစ်တစ်နှစ်ရဲ့ နှစ်ဆန်းချိန်ကို ဂျူလီယန်ရက်စွဲ တန်ဖိုးနဲ့ အောက်က ညီမျှခြင်း နဲ့ဖော်ပြ နိုင်ပါတယ်။

$$ ja = SY . my + MO $$ အဲဒီ ညီမျှခြင်းမှာ \( my \) က ရှာလိုတဲ့ မြန်မာ သက္ကရာဇ် ဖြစ်ပြီး၊ \( ja \) ကအဲဒီနှစ် နှစ်ဆန်းချိန်ရဲ့ ဂျူလီယန် ရက်တန်ဖိုး အဖြေဖြစ် ပါတယ်။ မြန်မာ ပြက္ခဒိန်တွေမှာ နှစ်သစ်ကူးချိန်ကို အတာတက်ချိန်လို့ ဖော်ပြလေ့ရှိပါတယ်။ သိပ်မကြာခင် နှစ်တချို့ရဲ့ သိပြီးသား နှစ်ဆန်းချိန် တွေကို \( ja \) မှာ အစားထိုးပြီး၊ ပျမ်းမျှရှာပြီး ခန့်မှန်း တဲ့အခါ \( MO \) ကို ဂျူလီယန်ရက်တန်ဖိုး ၁၉၅၄၁၆၈.၀၅၀၆၂၃ လို့ ခန့်မှန်းလို့ ရပါတယ်။

ဥပမာ။ ။မြန်မာနှစ် ၁၃၇၅ ခုရဲ့ နှစ်ဆန်းချိန် ကို ရှာပါ။

အဖြေ။ ။
my = 1375
ja = SY * 1375 + MO
= 365.2587565*1375+1954168.0506
= 2456398.8407875

မြန်မာနှစ် ၁၃၇၅ ခုရဲ့ နှစ်ဆန်းချိန် က ဂျူလီယန် ရက်စွဲ ၂၄၅၆၃၉၈.၈၄၀၇၈၇၅ လို့ တွေ့ရပါတယ်။ သူ့ကို ဂရီဂိုရီယန် ရက်စွဲ ပြောင်းကြည့် တဲ့အ ခါ 2013-Apr-16 08:10:44 am လို့ တွေ့ရပါတယ်။
Julian Date to Western Date Converter ကို သုံးပြီးပြောင်းလို့လဲ ရပါတယ်။
၂၀၁၃ ခုနှစ် သင်္ကြန်စာ မှာတွေ့ရတဲ့ အချိန်နှင့် ကိုက်ညီတာကို တွေ့ရပါတယ်။


မြန်မာနှစ်တနှစ် ကူးပြောင်းတဲ့ အချိန်မှာ သင်္ကြန်ပွဲတော်ကို ကျင်းပကြပါတယ်။ နှစ်ဆန်းချိန်ကို သင်္ကြန်တက်ချိန် ဒါမှ မဟုတ် အတာတက်ချိန်လို့ ခေါ်ပြီး၊ အဲဒါက သင်္ကြန်ပွဲတော် ပြီးဆုံးချိန် ဖြစ်ပါတယ်။ သင်္ကြန်ပွဲ စတင်တဲ့ အချိန်ကိုတော့ သင်္ကြန်ကျချိန် လို့ခေါ်ပါတယ်။ ယခုလက်ရှိ မြန်မာ ပြက္ခဒိန် အကြံပေး အဖွဲ့ က အသိအမှတ်ပြုတဲ့ သင်္ကြန်ကာလက ၂.၁၆၉၉၁၈၉၈၂ ရက် (၂ ရက်၊ ၄ နာရီ၊ ၄ မိနစ်၊ ၄၁ စက္ကန့်) ဖြစ်ပြီး၊ ရှေးမြန်မာ မင်းများ လက်ထက်ကတော့ ၂.၁၆၇၅ ရက် (၂ ရက်၊ ၄ နာရီ၊ ၁ မိနစ်၊ ၁၂ စက္ကန့်) ကို သုံးခဲ့ ပါတယ်။ ဒါကြောင့် သင်္ကြန်ကျချိန်ကို ရှာချင်ရင် သင်္ကြန်တက်ချိန် ထဲက ၂.၁၆၉၉၁၈၉၈၂ ရက်ကို နုတ်ပေးလိုက်ရင် ရပါတယ်။ မူသစ် မစတင်မီ (မြန်မာ သက္ကရာဇ် ၁၃၁၂ ခုနှစ် ၊ ခရစ်နှစ် ၁၉၅၀ မတိုင်မီ ) ဆိုရင်တော့ သင်္ကြန်ကျချိန်ကို ရဖို့အတွက် သင်္ကြန်တက်ချိန် ထဲက ၂.၁၆၇၅ ရက်နုတ်ပေးရမှာ ဖြစ်ပါတယ်။ သင်္ကြန်ကျချိန် ရဲ့ ဂျူလီယန် ရက်စွဲကို \( jk \) လို့ခေါ်လိုက်ပါမယ်။ သူ့ကိုအောက်ပါအတိုင်း တွက်နိုင်ပါတယ်။

$$ \begin{align} &\text{if (my >= 1312) then} \\ & jk = ja - 2.169918982 \\ &\text{else} \\ & jk = ja - 2.1675 \\ &\text{end if} \end{align} $$
မြန်မာ ပြက္ခဒိန်မှာ ရက်တရက် ရဲ့ အစက ည ၁၂ နာရီ ဖြစ်ပါတယ် [Irwin, 1901] p-7 ။ သင်္ကြန်ကျချိန် ပါတဲ့ရက်ကို သင်္ကြန် အကျနေ့လို့ ခေါ်ပါတယ်။ အဲဒီလိုပဲ သင်္ကြန်တက်ချိန် ရှိတဲ့ရက်ကို သင်္ကြန် အတက်နေ့လို့ ခေါ်ပါတယ်။ သင်္ကြန်အကျ နေ့နဲ့ အတက်နေ့ ကြားမှာရှိ တဲ့ရက်တွေကို သင်္ကြန် အကြတ်နေ့ တွေ လို့ခေါ်ပြီး၊ သင်္ကြန် အကျနေ့ မတိုင်ခင် ရက်ကိုတော့ သင်္ကြန် အကြိုနေ့လို့ ခေါ်ပါတယ်။ သင်္ကြန်ကျ ချိန်နှင့် တက်ချိန် ကြားမှာ ရှိတဲ့ အချိန်ကွာခြားချက်က ၂ ရက်ကျော်ကျော် ဖြစ်တဲ့ အတွက်၊ အကျရက်၊ အတက်ရက်တွေ ကျရောက်တာ ကို မူတည်ပြီး တခါတလေ အကြတ်နေ့ တစ်ရက်ရှိပြီး၊ တခါတလေ အကြတ်နေ့ နှစ်ရက်ရှိနိုင်ပါတယ်။ အတက်နေ့ ရဲ့ အတာတက်ချိန် မတိုင်မီ အပိုင်းက အရင်နှစ်ဖြစ်ပြီး၊ အတာတက်ချိန်နောက်က အပိုင်းကပဲ နောက်နှစ်ထဲ ပါတာမို့၊ အတက်နေ့ ရဲ့ နောက်တစ်ရက် ကိုပဲ နှစ်ဆန်းတစ်ရက်နေ့ လို့ ခေါ်ပါတယ်။ မြန်မာ နှစ် တနှစ်ရဲ့ နှစ်ဆန်းချိန် ကို ဂျူလီယန်၊ ဂရီဂိုရီယန် ရက်စွဲ တွေနဲ့ တွက် ပေးနိုင်တဲ့ တွက်စက်လေးကို အောက်က ဝက်ဘ်စာမျက်နှာ မှာ တွေ့နိုင်ပါတယ်။ အတာတက်ချိန် သာမက၊ သင်္ကြန်ကျချိန်၊ အကြိုနေ့၊ အကျနေ့၊ အကြတ်နေ့၊ အတက်နေ့ နဲ့ နှစ်ဆန်းတစ်ရက်နေ့ တွေကို ပါဖော်ပြပေးနိုင်ပါတယ်။

Thingyan Calculator >>

မြန်မာနှစ်တစ်နှစ် ကနေ သင်္ကြန်တက်ချိန်၊ သင်္ကြန်ကျချိန်၊ အကျနေ့၊ အတက်နေ့ များကို တွက်ပေးတဲ့ javascript ကုဒ်ကို အောက်မှာ ပြထားပါတယ်။
//Calculate the Thingyan (Myanmar new year)
//input: (my -myanmar year)
//output: (ja: atat time, jk: akya time, da: atat day, dk: akya day)
function ThingyanTime(my) {
 var SY=1577917828/4320000; //solar year (365.2587565)
 var LM=1577917828/53433336; //lunar month (29.53058795)
 var MO=1954168.050623; //beginning of 0 ME
 var SE3=1312; //beginning of 3rd Era
 ja=SY*my+MO; if (my >= SE3) jk=ja-2.169918982; else jk=ja-2.1675;
 return {ja:ja,jk:jk,da:Math.round(ja),dk:Math.round(jk)};
}

အပြန်အလှန် အနေနဲ့ ဂျူလီယန် ရက်တန်ဖိုးတစ်ခုကနေ မြန်မာနှစ်ကို ရှာချင်ရင် အောက်ပါ အတိုင်းတွက်နိုင်ပါတယ်။
$$ my=\lfloor \frac{jd-0.5-MO}{SY} \rfloor $$
အတက်ရက် ရဲ့ နောက်ရက်မှ နှစ်ဆန်းတစ်ရက် ဖြစ်တာမို့ ၀.၅ နုတ်ပေးဖို့လိုပါတယ်။

ဥပမာ အနေနဲ့ ၂၀၀၀ ခု ဇန်နဝါရီ ၁ ရက်နေ့ရဲ့ ဂျူလီယန် ရက်နံပါတ် က ၂၄၅၁၅၄၅ ရကြောင်းသိပြီးဖြစ်တဲ့အတွက်၊ သူ့အတွက် မြန်မာ သက္ကရာဇ်ကို ရှာကြည့် လိုက်ရင် (၂၄၅၁၅၄၅-၀.၅-၁၉၅၄၁၆၈.၀၅၀၆)/၃၆၅.၂၅၈၇၅၆၅=၁၃၆၁.၇၀၉၈ လို့ရပါမယ်။ floor အတွက် ကိန်းပြည့်ပဲယူပြီး ဒဿမကိန်းကို ဖြုတ်လိုက်ရင် မြန်မာ သက္ကရာဇ် ၁၃၆၁ ခုနှစ် လို့ရပါမယ်။


မြန်မာ ပြက္ခဒိန် က ဟိန္ဒူ ပြက္ခဒိန် အဟောင်းကနေ ဆင်းသက်လာ တာမို့ မြန်မာပြက္ခဒိန်ရဲ့ နှစ်တွေကို ကလိယုဂ် (Kali Yuga) အစ လို့ခေါ်တဲ့အချိန်တစ်ခုကနေ စတင် ရေတွက်ခဲ့တယ်လို့ သတ်မှတ်ထားပါတယ်။ လက်ရှိမြန်မာနှစ်မှာ သက္ကရာဇ်ဖြိုခြင်း အစရှိတဲ့ နှစ်ပြောင်းလဲခြင်းများရှိပါတယ်။ ကလိယုဂ်နှစ် လို့ခေါ်တဲ့ နှစ်အရေအတွက်စုစုပေါင်း ကို ရှာချင်ပါက လက်ရှိမြန်မာနှစ်ကို ၃၇၃၉ ပြန်ပေါင်းပေးပြီး ရနိုင်ပါတယ်။
$$ ky = my + 3739 $$
အဲဒီမှာ \( ky \) က ကလိယုဂ်နှစ်ဖြစ်ပြီး၊ \( my \) က မြန်မာသက္ကရာဇ် ဖြစ်ပါတယ်။ မြန်မာပြက္ခဒိန် ရဲ့ ကလိယုဂ် အစရဲ့ ဂျူလီယန်နေ့စွဲကို ရှာကြည့်တဲ့ အခါ ၅၈၈၄၆၅.၅၆၀၁၃၉ လို့ရပါတယ်။ $$ \begin{align} ky &=0 \\ my& = ky -3739 = -3739 \\ ja &= SY * (-3739) + MO \\ & = 588465.560139 \end{align} $$ Dershowitz က သူ့စာအုပ်ထဲမှာ ဖော်ပြထားတဲ့ ဟိန္ဒူ ပြက္ခဒိန် အဟောင်း [Dershowitz, 2008] မှာ ကလိယုဂ် အစက သောကြာနေ့၊ ဇန်နဝါရီ ၂၃၊ ဂရီဂိုရီရမ် -၃၁၀၁ ခုနှစ် လို့ ဖော်ပြထားပါတယ်။ အဲဒီနေ့ အစ ညသန်းခေါင်ဟာ ဂျူလီယန်ရက်စွဲတန်ဖိုး ၅၈၈၄၆၅.၅ ဖြစ်တဲ့အတွက် မြန်မာ ပြက္ခဒိန် နဲ့ နာရီတချို့ ကွာဟတာကို တွေ့ရပါတယ်။ အဲဒီမှာ ဟိန္ဒူ နေလသွား ပြက္ခဒိန် ရဲ့ အစက ကလိယုဂ် အစ မတိုင်ခင် ၂၈.၆၂၂၉၄ ရက်မှာ ကြိုပြီး စတင်တယ်လို့လည်း ဖော်ပြထားပါတယ်။ မြန်မာ ပြက္ခဒိန် ရဲ့ အစ ကတော့ ကလိယုဂ် အစနဲ့ တူတာကို တွေ့ရပါတယ်။ ဂျူလီယန် ရက်စွဲ ၅၈၈၄၆၅.၅၆၀၁၃၉ က သောကြာနေ့၊ ဇန်နဝါရီ ၂၃၊ ဂရီဂိုရီရမ် -၃၁၀၁ ခုနှစ်၊ မနက် ၁ နာရီ၊ ၂၆ မိနစ်၊ ၃၆ စက္ကန့် ဖြစ်တဲ့ အတွက် အဲဒီကွာနေတဲ့ အချိန်က လင်္ကာဒေသ စံတော်ချိန် လို့ ခေါ်တဲ့ ဥဂျိန်းမြို့ (Ujjain) စံတော်ချိန် နဲ့ မြန်မာ စံတော်ချိန် ကွာဟချက် ဖြစ်ပါတယ်။ ဇောတိသဝေဒ မဂ္ဂဇင်းမှာ ဆရာဦးအေးဝင်းကျော် ဖော်ပြထားတဲ့ တန်ဖိုးနဲ့ ကွက်တိတူနေတာကို တွေ့ရပါတယ် [Nyein, 2014], p.190။ ကိုအေးငြိမ်း က [Nyein, 2012] စံတော်ချိန် ကွာဟချက်ကို ၁ နာရီ၊ ၂၆ မိနစ်၊ ၅၃.၅၂ စက္ကန့် လို့ ဆိုထားတဲ့ အတွက် စက္ကန့် အနည်းငယ်ပဲ ကွာတာကို တွေ့ရပါတယ်။ မြန်မာပြက္ခဒိန် အကြံပေးအဖွဲ့ ဥက္ကဋ္ဌ ဘဒ္ဒန္တသဒ္ဓိယ ရဲ့ အဆိုအရ မြန်မာနှစ်ဆန်း တွက်ဖို့ လင်္ကာဒေသ ဖြစ်တဲ့ ဥဇ္ဇေနီ၊ ဥဂျိန်း လို့ခေါ် တဲ့နေရာက ၇၆° ၀၆' မှာရှိတယ် လို့ ပြက္ခဒိန် အကြံပေး အဖွဲ့ဝင်များ သဘောတူ ဆုံးဖြတ်ကြတယ် လို့ သိရပါတယ် [Thadiya, 2010]။ ဂျူလီယန်နေစွဲတန်ဖိုး ကို \( jd \) လို့ခေါ်ပြီး၊ ကလိယုဂ် အစက စတင်ရေတွက်လာတဲ့ စုစုပေါင်းရက် အရေအတွက် ကို \( kd \) လို့ခေါ်မယ် ဆိုရင်၊ သူတို့ရဲ့ ဆက်စပ်မှုကို အောက်ပါအတိုင်း တွေ့ရပါတယ်။
$$ kd = jd - 588465.560139 $$
မြန်မာ ပြက္ခဒိန်တွေမှာ သာသနာနှစ် ( Buddhist Era - BE) ကိုလည်း ဖော်ပြလေ့ ရှိပါတယ်။ သာသနာနှစ်က 543 BC လောက်ကစပါတယ် [Clancey, 1906] ။ သာသနာနှစ် ကို ရှာချင်ရင် လက်ရှိမြန်မာနှစ်ကို ၁၁၈၂ ပေါင်းပေးပြီး ရနိုင်ပါတယ်။ ပြက္ခဒိန် နှစ်ခုလုံးရဲ့ လနဲ့ ရက်တွေ ကတော့ အတူတူပဲ ဖြစ်ပါတယ်။
$$by = my + 1182$$
အဲဒီမှာ \( by \) က သာသနာနှစ်ဖြစ်ပြီး၊ my က မြန်မာသက္ကရာဇ် ဖြစ်ပါတယ်။

၄။ လထပ်ခြင်း

မြန်မာ ပြက္ခဒိန်မှာ ရိုးရိုးပုံမှန် နှစ်တွေဆိုရင် ၁၂ လရှိပါတယ်။ မကိန်း လတွေမှာ ရက်မစုံ ၂၉ ရက်ရှိပြီး၊ စုံကိန်းလတွေမှာ ရက်စုံ ၃၀ ရက်ရှိပါတယ်။ မြန်မာလတွေနဲ့ သူတို့ရဲ့ ရက်အရေအတွက်တွေကို အောက်က ဇယားမှာ ပြထားပါတယ်။ အဲဒီမှာ တွက်ချက်တဲ့အခါ သုံးဖို့ မြန်မာလ တွေကို နံပါတ် သတ်မှတ်လိုက်ပြီး၊ အဲဒီ နံပါတ်သတ်မှတ်ချက်တွေကို ပါဖော်ပြထားပါတယ်။

သာမန်နှစ်၏ မြန်မာလများ
လအမည်ရက်အရေအတွက်နံပါတ်မှတ်ချက်
စုစုပေါင်း၃၅၄    
တန်ခူး၂၉  
ကဆုန်၃၀  
နယုန်၂၉  
ဝါဆို၃၀ ဤလ လပြည့်နေ့သည် ဓမ္မစကြာနေ့။ အဿဠီ နက္ခတ်နှင့် စန်းယှဉ်သည်။
ဝါခေါင်၂၉  
တော်သလင်း၃၀  
သီတင်းကျွတ်၂၉  
တန်ဆောင်မုန်း၃၀  
နတ်တော်၂၉  
ပြာသို၃၀၁၀  
တပို့တွဲ၂၉၁၁  
တပေါင်း၃၀၁၂  


လထပ်တဲ့ နှစ်ဆိုရင် တော့ ၁၃ လ ရှိပြီး ဝါထပ်နှစ်လို့ ခေါ်ပါတယ်။ ထပ်ထည့်တဲ့ လမှာ ရက် ၃၀ ရှိပြီး၊ သူ့ကို ဝါဆိုလ ရဲ့ ရှေ့မှာပဲ အမြဲထည့်တဲ့အတွက် ပထမ ဝါဆိုလ လို့ ခေါ်ပါတယ်။ ဝါထပ်နှစ်မှာလည်း လပဲထပ်ပြီး၊ ရက်မထပ်ရင် ဝါငယ်ထပ်နှစ်လို့ ခေါ်ပြီး၊ လရော ရက်ရော နှစ်ခုလုံးထပ်တဲ့နှစ်ကိုတော့ ဝါကြီးထပ်နှစ်လို့ခေါ်ပါတယ်။ ရိုးရိုးနှစ်တွေမှာတော့ ရက်မထပ်ပါဘူး။ ရက်ထပ်တဲ့အခါ အဲဒီရက်ကို ပထမဝါဆိုလ မတိုင်ခင်မှာ ထပ်ပေါင်းထည့်ပါတယ်။ ဒါကြောင့် ပထမ ဝါဆိုလ ရှေ့က နယုန်လမှာ ရိုးရိုးနဲ့ ဝါငယ်ထပ်နှစ် တွေမှာဆို ၂၉ ရက်ရှိပြီး၊ ဝါကြီးထပ်နှစ်ဆိုရင် ၃၀ ရက်ရှိပါတယ်။ ဝါထပ်နှစ်တွေ ရဲ့ လတွေနဲ့၊ ရက်အရေအတွက်၊ လနံပါတ် သတ်မှတ်ချက် တွေကို အောက်မှာ ဖော်ပြထားပါတယ်။

ဝါငယ်ထပ်နှစ်၏ မြန်မာလများ
လအမည် ရက်အရေအတွက် နံပါတ်မှတ်ချက်
စုစုပေါင်း ၃၈၄    
တန်ခူး ၂၉  
ကဆုန် ၃၀  
နယုန် ၂၉  
ပဝါဆို ၃၀ ဝါဆို လပြည့်၏ စန်းယှဉ်နက္ခတ် မှန်ကန်စေရန် ထပ်ပေါင်းပေးသောလ။
ဒုဝါဆို ၃၀ ဤလ လပြည့်နေ့သည် ဓမ္မစကြာနေ့။ အဿဠီ နက္ခတ်နှင့် စန်းယှဉ်သည်။
ဝါခေါင် ၂၉  
တော်သလင်း ၃၀  
သီတင်းကျွတ် ၂၉  
တန်ဆောင်မုန်း ၃၀  
နတ်တော် ၂၉  
ပြာသို ၃၀ ၁၀  
တပို့တွဲ ၂၉ ၁၁  
တပေါင်း ၃၀ ၁၂  


ဝါကြီးထပ်နှစ်၏ မြန်မာလများ
လအမည် ရက်အရေအတွက် နံပါတ်မှတ်ချက်
စုစုပေါင်း ၃၈၅    
တန်ခူး ၂၉  
ကဆုန် ၃၀  
နယုန် ၃၀ ဝါကြီးထပ်နှစ် မဟုတ်ပါက ၂၉ ရက် သာရှိသည်။
ဝါကြီးထပ်နှစ်တွင် နယုန်လ နောက်ဆုံးတွင် ၁ ရက်ထပ်ပေါင်းသည်။
ပဝါဆို ၃၀ ဝါဆို လပြည့်၏ စန်းယှဉ်နက္ခတ် မှန်ကန်စေရန် ထပ်ပေါင်းပေးသောလ။
ဒုဝါဆို ၃၀ ဤလ လပြည့်နေ့သည် ဓမ္မစကြာနေ့။ အဿဠီ နက္ခတ်နှင့် စန်းယှဉ်သည်။
ဝါခေါင် ၂၉  
တော်သလင်း ၃၀  
သီတင်းကျွတ် ၂၉  
တန်ဆောင်မုန်း ၃၀  
နတ်တော် ၂၉  
ပြာသို ၃၀ ၁၀  
တပို့တွဲ ၂၉ ၁၁  
တပေါင်း ၃၀ ၁၂  


မြန်မာပြက္ခဒိန်မှာ စန္ဒြမာသ လ (lunar month) တစ်လကြာချိန်ကို ၁၅၇၇၉၁၇၈၂၈/၅၃၄၃၃၃၃၆ ( ၂၉.၅၃၀၅၈၇၉၅ ) ရက်လို့ သတ်မှတ်ထား ပါတယ် [Irwin, 1909]။ အဲဒီ ကိန်းသေကို \( LM \) လို့ ခေါ်လိုက်ပါမယ်။ $$ LM = 1577917828 / 53433336 $$ သူရိယနှစ် (solar year) တစ်နှစ်ရဲ့ ကြာချိန်က ၃၆၅.၂၅၈၇၅၆၅ ရက် ဖြစ်ပြီး \( SY \) လို့ ခေါ်ပါမယ်။ စန္ဒြမာသ လ (lunar month) ဆယ့်နှစ်လ ရဲ့ကြာချိန်က (၂၉.၅၃၀၅၈၇၉၅ x ၁၂)=၃၅၄.၃၆၇၀၅၅၄ ရက်သာဖြစ်လို့ ဆယ့်နှစ်လရှိတဲ့ ပုံမှန်နှစ် တစ်နှစ်မှာ အရင်နှစ်က နက္ခတ်ကြယ်စု ရှိတဲ့ နေရာ ပြန်မရောက်ခင် ၁၀.၈၉၁၇၀၁၁ ရက် စောပြီး ၁၂ လပြည့်သွားပါတယ်။ တစ်နှစ်ပြီး တစ်နှစ် စုလာတဲ့ ရက်ပိုတွေကို သတ်မှတ်ထားတဲ့ အချိန်တစ်ခုမှာ တစ်လစာ \( LM \) (၂၉.၅၃၀၅၈၇၉၅ ရက်) ပြည့်သွားရင် ဝါဆိုလ မတိုင်ခင် တစ်လ အပိုထည့်လိုက်ပြီး ဝါထပ်နှစ် ဖြစ်သွားပါတယ်။ ဒါကြောင့် ဝါဆိုလပြည့်ကလည်း သူ့ရဲ့ နက္ခတ်နဲ့ ပြန်တည့်သွားပါတယ်။ ဝါငယ်ထပ်နှစ်မှာ ၃၀ ရက်ပေါင်းထည့်ပြီး၊ ဝါကြီးထပ်နှစ်မှာ ၃၁ ရက်ပေါင်းထည့်ပါတယ်။ ရက်ပိုတွေကို ရှာဖို့အတွက် ဒဿမကိန်းတွေကို အကြွင်းရှာပေးတဲ့ လုပ်ဆောင်ချက် mod ကိုသုံးပါမယ်။ mod ရဲ့ သတ်မှတ်ချက်က အောက်ကအတိုင်း ဖြစ်ပါတယ်။
$$\text{x mod y} = x - y . \lfloor \frac{x}{y} \rfloor $$
ဥပမာ ၇ ကို ၃ နဲ့ စားရင် အကြွင်းက (7 mod 3) = 1 ဖြစ်ပါတယ်။ နောက်တစ်ခါ (၃.၃ mod ၁.၄) ဆိုရင် အကြွင်းက ၀.၅ ပါ။ \( SY \) mod \( LM \) ဆိုပါကလည်း အကြွင်း က ၁၀.၈၉၁၇၀၁၁ ဖြစ်ပါတယ်။ ဝါထပ်နှစ်ဟုတ်မဟုတ် စစ်ဆေးဖို့ အတွက်နှစ်တစ်နှစ်ရဲ့ အစမှာရှိတဲ့ ရက်ပိုကိုရှာဖို့ လိုပါတယ်။
လက်ရှိ မြန်မာနှစ်တစ်နှစ်ရဲ့ ရက်ပို ဆိုတာက အဲဒီနှစ်ရဲ့ အစ နှစ်ကူးချိန် နဲ့ နှစ်ကူးချိန်မှာ ကျရောက်တဲ့ လတစ်လရဲ့ အစ လဆန်းချိန် ကြား ကွာခြားတဲ့ ရက် ဖြစ်ပါတယ်။ အဲဒီ ရက်ပိုကို ရှာချင်ရင် တစ်နှစ်ကြာချိန် \( SY \) ကို ကလိယုဂ် အစက စရေတွက်ခဲ့တဲ့ နှစ်စုစုပေါင်းနဲ့ မြှောက်ပြီး၊ တစ်လကြာချိန် \( LM \) နဲ့ အကြွင်းရှာပေး ပြီးရနိုင် ပါတယ်။ မြန်မာနှစ် \( my \) ရဲ့ ရက်ပို \( ed \) ကို အောက်က ညီမျှခြင်းနဲ့ ရှာနိုင်ပါတယ်။
$$ed =( SY ( my + 3739 ) ) \text{ mod } LM$$
မြန်မာ ပြက္ခဒိန် ခေတ်သုံးခေတ် ရှိပါတယ်။ အဲဒီခေတ်တွေနဲ့ သူတို့ရဲ့ သတ်မှတ်ချက်တွေကို အောက်က ဇယားမှာ ပြထားပါတယ်။

မြန်မာ ပြက္ခဒိန် ခေတ်များ
ခေတ် ဖော်ပြချက် မြန်မာနှစ် သတ်မှတ်ချက်
ပထမခေတ် မြန်မာ ဘုရင်များ ရတနာပုံခေတ် မြန်မာနှစ် ၁၂၁၆ ( ခရစ်နှစ် ၁၈၅၄)နှင့် မတိုင်မီ
ဒုတိယခေတ် ဗြိတိသျှကိုလိုနီခေတ် မြန်မာနှစ် ၁၂၁၇ မှ ၁၃၁၁ (ခရစ်နှစ် ၁၈၅၅ - ၁၉၄၉)
တတိယခေတ် လွတ်လပ်ရေးရပြီးခေတ် ၁၃၁၂ (ခရစ်နှစ် ၁၉၅၀) နှင့်နှောင်းပိုင်း


၄.၁။ တတိယခေတ် ၏ လထပ်ခြင်း

လက်ရှိ တတိယခေတ် က လွတ်လပ်ရေးရပြီး နောက်ပိုင်း ခေတ်ဖြစ်ပြီး၊ မြန်မာ ပြက္ခဒိန် အကြံပေးအဖွဲ့ ရဲ့နည်းကို အခုအချိန်ထိ အသုံးပြုခဲ့ ပါတယ်။ ပထမရှစ်လ ထဲမှာရက်ပို တစ်လစာ ပြည့်ရင် အဲဒီနှစ်မှာပဲ ဝါထပ်ဖို့ဖြစ်ပြီး၊ နောက်ဆုံးလေးလ ထဲမှသာ ရက်ပြည့်ပါက နောက်နှစ်မှဝါထပ်ရန်ဖြစ်ပါတယ်။ ရက်ပို မပို ဆုံးဖြတ်မယ့်အချိန်ကို သတ်မှတ်ထားတဲ့ လအရေအတွက် ကို \( NM \) လို့ခေါ်မယ် ဆိုရင် ဒီနည်း အတွက် သူ့ရဲ့ တန်ဖိုးကို ၈ လို့ သတ်မှတ်ပါမယ်။ $$NM = 8 $$ အထက် မှာ ပြောခဲ့သလို သူရိယနှစ် တစ်နှစ်မှာ ရက်ပို \( SY-12 \times LM \) = ၁၀.၈၉၁၇၀၁၁ ရက်ရှိတာမို့ သူရိယလ တစ်လစာအတွက် ရက်ပို လိုချင်ရင် အဲဒီကိန်းကို ဆယ့်နှစ် နဲ့ စားပြီး \( \frac{SY}{12}-LM \) = ၀.၉၀၇၆၄၁၇ ရက် ဆိုတာ ကို သိနိုင် ပါတယ်။ အရင်နှစ်ရဲ့ နောက်ဆုံး ၄ လမှာ ရက်ပြည့်ခဲ့ ရင် ဒီနှစ်ဝါထပ်ဖို့ လိုပါတယ်။ ရက်ပြည့်ခဲ့ မပြည့်ခဲ့ကို တစ်လစာ ရက်ပို နဲ့ ၄ နဲ့မြှောက်ပြီး၊ လက်ရှိနှစ် အစရဲ့ ရက်ပိုနဲ့ နှိုင်းယှဉ်ကြည့်နိုင်ပါတယ်။ လက်ရှိရက်ပိုက ငယ်နေမယ်ဆို ရက်ပြည့်ပြီးသား ဖြစ်ခဲ့တာမို့ ရက်ပိုကို တစ်လစာ ရက်အရေအတွက် \( LM \) ပြန်ပေါင်းထည့်ပြီး ချိန်ညှိဖို့လိုပါတယ်။ လေးလစာ ရက်ပို က ကိန်းသေတန်ဖိုး ဖြစ်ပြီး သူ့ကို ရက်ပိုညှိကိန်း \( TA \) လို့ ခေါ်လိုက်မယ်ဆိုရင် သူရဲ့တန်ဖိုးက
$$TA = ( 12 - NM ) ( SY / 12 - LM ) $$ ဖြစ်ပါတယ်။ ဒီနည်းအတွက် ရက်ပိုညှိကိန်း ရဲ့ တန်ဖိုးကို တွက်ကြည့်လိုက်ရင် 3.630567 လို့ရပါတယ်။ လက်ရှိရက်ပို \( ed \) က ရက်ပိုညှိကိန်း \( TA \) ထက်ငယ်နေရင် အောက်က အတိုင်းချိန်ညှိ ပါတယ်။
$$ \begin{align} & \text{if ed < TA then } \\ & ed = ed + LM \\ &\text{end if} \end{align} $$ စန္ဒြမာသ လတစ်လရဲ့ ကြာချိန် \( LM \) ထဲက ရှစ်လစာရက်ပို်ကို နုတ်ထားတဲ့ကိန်းကို ဝါထပ်ကိန်း \( TW \) လို့ခေါ်လိုက်ပါမယ်။ နှစ်စကနေ လာမယ့် ရှစ်လအတွင်း ရက်ပိုတစ်လ ပြည့်မပြည့် စစ်ဖို့ကို ချိန်ညှိပြီးသားရက်ပို ကို ဝါထပ်ကိန်း \( TW \) နဲ့ နှိုင်းယှဉ်ကြည့် နိုင်ပါတယ်။
$$TW = LM - NM (SY / 12 - LM) $$ ဝါထပ်ကိန်း \( TW \) က ကိန်းသေတစ်ခု ဖြစ်ပြီး အပေါ်က ညီမျှခြင်းနဲ့ သူ့ရဲ့ တန်ဖိုးကို တွက်ကြည့်လိုက်ရင် 22.2694539 ရက်လို့ရပါတယ်။ ရက်ပိုတန်ဖိုး က \( TW \) ထက်ပိုကြီးနေ၊ ညီနေ ရင် ဝါထပ် ပါတယ်။
$$ \begin{align} & \text{if ed >=TW then } \\ &\text{ It is a year with the intercalary month} \\ &\text{end if} \end{align} $$ ဒီနည်းနဲ့ တွက်ကြည့်ပြီး ရှိပြီးသား မြန်မာပြက္ခဒိန် မှတ်တမ်းတွေနဲ့ တိုက်ကြည့်လိုက်တော့ နှစ်အားလုံးကိုက်ညီပေမယ့်၊ တစ်နှစ်ပဲ ၁၃၄၅ ခုနှစ်မှာ ဝါထပ်ရမယ့် အစား ၁၃၄၄ ခုနှစ်မှာ ဝါထပ်ထားတာကို ခြွင်းချက်အနေ့နဲ့ တွေ့ရပါတယ်။

ဥပမာ။ ။ ၁၃၇၄ ခုနှစ်ကို ဝါထပ်မထပ် စစ်ကြည့်ပါမယ်။

အဖြေ။ ။
အဆင့် ၁။ ရက်ပိုရှာ

၁၃၇၄ ကို ၃၇၃၉ ပေါင်းရင် ကလိယုဂ်နှစ် ၅၁၁၃ ရပါတယ်။ နှစ်တစ်နှစ်ရဲ့ ကြာချိန် ၃၆၅.၂၅၈၇၅၆၅ ရက်နဲ့ မြှောက်ရင် ကလိယုဂ် အစက စတင်ရေတွက်လာတဲ့ ရက်စုစုပေါင်း ၁၈၆၇၅၆၈.၀၂၁၉၈၄၅ ရက် ရပါတယ်။ နောက် လတစ်လ၏ ကြာချိန် ၂၉.၅၃၀၅၈၇၉၅ နဲ့စားပြီး အကြွင်းရှာရင် ၂၄.၁၀၉၄၃၈၅ ရက်ပိုပါတယ်။
ed =( SY ( my + 3739 ) ) mod LM
=(365.2587565*(1374+3739)) mod 29.53058795
=24.1094385


အဆင့် ၂။ ရက်ပိုညှိ
ရလာတဲ့ ရက်ပိုက ၃.၆၃၀၅၆၇ ရက် ထက် မငယ်လို့ ချိန်ညှိဖို့ မလိုပါ။

အဆင့် ၃။ ရက်ပိုစစ်
ရက်ပိုက ဝါထပ်ကိန်း၂၂.၂၆၉၄၅၃၉ ထက်ကြီးတာမို့ ထိုနှစ်က ဝါထပ်နှစ်ဖြစ်ပါတယ်။



၄.၂။ တတိယခေတ် လထပ်နှစ်၏ ဝါဆိုလပြည့်နေ့

မြန်မာ ပြက္ခဒိန်မှာ လထပ်၊ ရက်ထပ်ပြီး ချိန်ညှိပြီးကာစ ဖြစ်တဲ့ ဝါထပ်နှစ်ရဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့ က အမှန်ဆုံး၊ ပုံသေအရှိဆုံး နဲ့ အခန့်မှန်းနိုင်ဆုံး ဖြစ်ပါတယ်။ ဝါထပ်နှစ် ဝါဆိုလ မတိုင်ခင်မှာ ပဲ ရက်ထပ်ဖြည့်လို့ရတဲ့ စည်းမျဉ်းကြောင့် တခြားနှစ် နဲ့ လတွေမှာ လွဲမှားမှု ရှိလည်း ဘာမှလုပ်လို့ မရလို့ပါ။ ပညာရှင်တော်တော်များများက မြန်မာ ပြက္ခဒိန်မှာ ဝါထပ် ရက်ငင်စည်းကမ်း ပုံသေမရှိတာကြောင့် အနာဂတ်ကို ကြိုပြီး တွက်လို့မရနိုင် ဘူးလို့ဆိုကြပါတယ်။ ဘာကြောင့် စည်းကမ်း ပုံသေမရှိတာလဲလို့ စဉ်းစား ကြည့်တဲ့အခါ ဒုတိယ ဝါဆိုလပြည့်နေ့ ရဲ့ တိထီ ( \( \frac{LM}{30} \) ရှိသော အတိုင်းအတာ)၊ စန်းယှဉ် နက္ခတ် များကိုက်ညီမှု ကို ဦးစားပေးတာကြောင့်လို့ ဆိုရပါမယ်။ တနည်းပြောရရင် ဒုတိယ ဝါဆိုလပြည့်နေ့ ရဲ့တိကျမှု က ပိုအရေးကြီး တာကြောင့် ဖြစ်ပါတယ်။

မြန်မာ ပြက္ခဒိန် အကြံပေး အဖွဲ့ရဲ့ မူဝါဒမှာ "ဒုတိယ ဝါဆိုလပြည့်၍ တိထီ အားကောင်း၍၊ အဿဠီ နက္ခတ်များနှင့် စန်းယှဉ်စေရမည်" လို့ ပါရှိကြောင်း သိရပါတယ်။ ဒုတိယ ဝါဆိုလပြည့်နေ့ ကိုက်ညီတိကျရင် အနာဂတ်ကို ကြိုတွက်နိုင်ပါတယ်။ ရက်ငင်စည်းကမ်း ရှိဖို့ မလိုပါ။ အဲဒီလိုတွက်ဖို့ ဒုတိယ ဝါဆိုလပြည့်နေ့ ကိုသိဖို့ လိုအပ်ပါတယ်။ ဝါထပ်နှစ် တစ်နှစ်ရဲ့ နှစ်ဆန်းချိန် ကနေ ရက်ပိုကို နုတ်ရင် တန်ခူးလ အစ (တပေါင်းလကွယ် ပြီးချိန်) ရဲ့ အချိန်ကို ရပါတယ်။ တန်ခူးလ အစ အချိန်ကို ၄ လခွဲ ပေါင်းပေးရင် ဒုတိယ ဝါဆိုလပြည့် နေ့ကိုရပါတယ်။ လပြည့်ချိန်ကို ညသန်းခေါင်နဲ့ ကိုက်အောင် ချိန်မှာဖြစ်တဲ့အတွက် သန်းခေါင်နှင့် မွန်းတည့် ကွာချိန် ၀.၅ ရက် ကို ပြန်နုတ် ပေးဖို့လိုပြီး အဲလို ချိန်ညှိပေးတဲ့ ကိန်းသေကို ဝါဆိုညှိကိန်း \( WO \) လို့ခေါ် လိုက်ပါမယ် ။
$$WO = -0.5$$
ဝါဆိုညှိကိန်းက ကိန်းသေဖြစ်ပြီး အခု တတိယခေတ်အတွက် -၀.၅ ရက် ဖြစ်ပါတယ်။ ဝါထပ်နှစ် တနှစ်ရဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့ ကို \( w \) ဟုခေါ်ပြီး၊ အဲဒီနှစ်ရဲ့ နှစ်ကူးချိန် ဂျူလီယန်ရက်နံပါတ်ကို \( ja \) ၊ ရက်ပို ကို \( ed \) လို့ခေါ်ရင်၊ သူတို့ရဲ့ ဆက်စပ်မှု ကို အောက်က ညီမျှခြင်းနဲ့ ပြလို့ရပါတယ်။ အဲဒီမှာ round(x) = \( \lfloor x \rceil \) က အနီးဆုံးကိန်းပြည့်ကိုယူတဲ့ လုပ်ဆောင်ချက်ဖြစ်ပါတယ်။
$$w = \lfloor ja - ed + 4.5 LM + WO \rceil $$ တနည်းဆိုရရင် ဝါထပ်နှစ်တစ်နှစ်ရဲ့ ဝါဆိုလပြည့်နေ့ ဂျူလီယန်ရက်နံပါတ်ကို မြန်မာနှစ်ကနေ တိုက်ရိုက်တွက်ချင်ရင် နှစ်ကူးချိန် \( ja \) နေရာမှာ ရှေ့က ဖော်ပြခဲ့တဲ့ နှစ်ဆန်းချိန်ရှာတဲ့ ညီမျှခြင်းအစားထိုးပြီး အောက်ကအတိုင်း တွက်လို့ရပါတယ်။
$$w = \lfloor SY . my + MO - ed + 4.5 LM + WO \rceil $$ အဲဒီလိုတွက်လို့ရတဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့တွေကို တတိယခေတ်မှာ ရှိတဲ့ ပြီးခဲ့တဲ့ ဒုတိယဝါဆိုလပြည့်နေ့တွေနဲ့ တိုက်စစ်ကြည့်တဲ့ အခါ မြန်မာနှစ် ၁၃၇၇ ခုနှစ် ကလွဲလို့ အားလုံးကိုက်ညီ မှန်ကန်တာကို တွေ့ရပါတယ်။

ဥပမာ။ ။ ရက်ပို ၂၄.၁၀၉၄၃၈၅ ရှိတဲ့ ၁၃၇၄ ခုနှစ်ရဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့ကို ရှာပါ။

အဖြေ။ ။
အထက်က ညီမျှခြင်းမှာပဲ တစ်နှစ်ကြာချိန် SY နေရာမှာ ၃၆၅.၂၅၈၇၅၆၅ ရက်၊ မြန်မာ သုညနှစ်အစ MO နေရာမှာ ၁၉၅၄၁၆၈.၀၅၀၆ ရက်၊ ဝါဆိုညှိကိန်း WO နေရာမှာ -၀.၅ ရက်အစားထိုးလိုက်ရင် အောက်ပါအတိုင်းရပါတယ်။
w = round( SY * my + MO - ed + 4.5 LM + WO )
= round( 365.2587565 * 1374 + 1954168.050623 - 24.1094385 + 4.5*29.53058795 - 0.5 )
= round(2456141.86)
= 2456142

ဒုတိယ ဝါဆိုလပြည့်နေ့ရဲ့ ဂျူလီယန်ရက်နံပါတ်ကို ၂၄၅၆၁၄၂ လို့ရတဲ့အတွက် Julian Date to Western Date Converter မှာ ပြောင်းကြည့်တဲ့ အခါ ခရစ်နှစ် ၂၀၁၂၊ သြဂုတ်လ၊ ၂ ရက် နေ့လို့ရပါတယ်။


ဒီတတိယခေတ်ရဲ့ ဝါထပ်၊ မထပ် စစ်တဲ့နည်း နဲ့ ဒုတိယ ဝါဆို လပြည့် ရှာတဲ့နည်း ကို အောက်ကအတိုင်း အနှစ်ချုပ် ဖော်ပြနိုင်ပါတယ်။

တတိယခေတ် ဝါထပ် နဲ့ ဒုတိယ ဝါဆို လပြည့်
ဖော်ပြချက် ညီမျှခြင်း
ရှာလိုသော မြန်မာနှစ် \( my \) အတွက် ရက်ပို \( ed \) ကိုရှာပါ။   \( ed =( SY ( my + 3739 ) ) \text{ mod } LM \)
where \( SY \) = 365.2587565, \( my \) = Myanmar year, \( LM \) = 29.53058795, \( ed \) = excess days.
ရက်ပို က \( TA \) ထက်ငယ်ရင် \( LM \) ပြန်ပေါင်းပေးပြီး ညှိ။ If ed < 3.630567 then
  ed = ed + 29.53058795
end if
ညှိပြီးသား ရက်ပိုကို \( TW \) ထက် ကြီးမကြီးစစ်ပြီး၊ ကြီး/ညီ နေရင် ဝါထပ်။ If ed ≥ 22.2694539 then
  watat = 1
else
  watat = 0
end if
ဝါထပ်ပါက ဒုတိယ ဝါဆိုလပြည့်နေ့ \( w \) ကို ရှာပါ။ \(w = \lfloor SY . my + MO - ed + 4.5 LM + WO \rceil \)
where \( w \) = the full moon day of second Waso, \( MO \) = 1954168.050623, \( WO \) = -0.5.


၄.၃။ ဒုတိယခေတ် ၏ လထပ်ခြင်း နှင့် ဝါဆိုလပြည့်နေ့

သူရိယသိဒ္ဓန္တကျမ်းကို မြန်မာဘာသာ ပြန်ဆိုခဲ့တဲ့ ညောင်ကန်ဆရာတော် ရဲ့နည်း ကိုသုံးတဲ့ နှစ်ပေါင်းတစ်ရာ ကြာတဲ့ခေတ်ဖြစ်ပါတယ်။ သူရိယသိဒ္ဓန္တကျမ်းက မြန်မာပြည်ကို သက္ကရာဇ် ၁၂၀၃ ကရောက်ပေမယ့် ၁၉ နှစ်နဲ့ စားပြီး မူသေအကြွင်း ဂဏန်း နဲ့ လထပ်ရမယ် ဆိုတဲ့ မူဝါဒ လွမ်းမိုးမှု ကို ပြောင်းလဲဖို့ အချိန်ယူရတာကြောင့် သက္ကရာဇ် ၁၂၁၇ ရောက်မှ ညောင်ကန်ဆရာတော် ရဲ့ လထပ်စည်းကမ်း ကို စသုံးခဲ့ပါတယ် [Kyaing, 1964], p-160 ။ ပထမလေးလ ထဲမှာရက်ပို တစ်လစာ ပြည့်ရင် အဲဒီနှစ်မှာပဲ ဝါထပ်ဖို့ဖြစ်ပြီး၊ နောက်ဆုံးရှစ်လ ထဲရောက်မှ ရက်ပြည့်ပါက နောက်နှစ်မှဝါထပ်ရန်ဖြစ်ပါတယ်။ ရက်ပို မပို ဆုံးဖြတ်မယ့်အချိန်ကို သတ်မှတ်ထားတဲ့ လအရေအတွက် \( NM \) ကရှစ်လ အစား၊ လေးလဖြစ်ပြီး ကျန်တာက တတိယ ခေတ်တဲ့ အတူတူပဲ ဖြစ်ပါတယ်။ $$NM = 4 $$ \( NM \) တန်ဖိုး ၄ ကို သုံးပြီး တတိယခေတ်က ညီမျှခြင်းတွေအတိုင်းတွက်လို့ရပါတယ်။ တွက်ကြည့်ပြီး မြန်မာပြက္ခဒိန် မှတ်တမ်းတွေနဲ့ တိုက်ကြည့်လိုက်တော့ နှစ်အားလုံးကိုက်ညီပေမယ့်၊ တစ်နှစ်ပဲ ၁၂၆၄ ခုနှစ်မှာ ဝါထပ်ရမယ့် အစား ၁၂၆၃ ခုနှစ်မှာ ဝါထပ်ထားတာကို ခြွင်းချက်အနေ့နဲ့ တွေ့ရပါတယ်။
ဒုတိယခေတ် ရဲ့ နှစ်တစ်ရာစာ ဒုတိယဝါဆိုလပြည့်နေ့တွေကို စစ်ဆေးကြည့်တဲ့အခါ တတိယခေတ်ရဲ့ နည်းအတိုင်း အကုန် တွက်လို့ရပြီး၊ ကိန်းသေ ဝါဆိုညှိကိန်း \( WO \) နေရာမှာပဲ အောက်ကညီမျှခြင်းပြောင်းသုံးဖို့လို ပါတယ်။
$$WO = - 1$$
တွက်လို့ရတဲ့ နေ့တွေကို ဒုတိယခေတ်ရဲ့ ဒုတိယဝါဆိုလပြည့်နေ့တွေနဲ့ တိုက်စစ်ကြည့်တဲ့ အခါ အားလုံးကိုက်ညီ မှုရှိတာကို တွေ့ရပါတယ်။ ခြွင်းချက်အနေနဲ့ သက္ကရာဇ် ၁၂၆၁ မှာ ကျရောက်ခဲ့တဲ့ လပြည့်နေ့က တွက်လို့ရတဲ့အဖြေထက် တစ်ရက်စောနေပြီး၊ ၁၂၃၄ မှာ တစ်ရက်နောက်ကျတာကို တွေ့ရပါတယ်။
ဒီဒုတိယခေတ်ရဲ့ ဝါထပ်၊ မထပ် စစ်တဲ့နည်း နဲ့ ဒုတိယ ဝါဆို လပြည့် ရှာတဲ့နည်း ကို အောက်ကအတိုင်း အနှစ်ချုပ် ဖော်ပြနိုင်ပါတယ်။

ဒုတိယခေတ် ဝါထပ် နဲ့ ဒုတိယ ဝါဆို လပြည့်
ဖော်ပြချက် ညီမျှခြင်း
ရှာလိုသော မြန်မာနှစ် \( my \) အတွက် ရက်ပို \( ed \) ကိုရှာပါ။   \( ed =( SY ( my + 3739 ) ) \text{ mod } LM \)
where \( SY \) = 365.2587565, \( my \) = Myanmar year, \( LM \) = 29.53058795, \( ed \) = excess days.
ရက်ပို က \( TA \) ထက်ငယ်ရင် \( LM \) ပြန်ပေါင်းပေးပြီး ညှိ။ If ed < 7.261134 then
  ed = ed + 29.53058795
end if
ညှိပြီးသား ရက်ပိုကို \( TW \) ထက် ကြီးမကြီးစစ်ပြီး၊ ကြီး/ညီ နေရင် ဝါထပ်။ If ed ≥ 25.900020 then
  watat = 1
else
  watat = 0
end if
ဝါထပ်ပါက ဒုတိယ ဝါဆိုလပြည့်နေ့ \( w \) ကို ရှာပါ။ \(w = \lfloor SY . my + MO - ed + 4.5 LM + WO \rceil \)
where \( w \) = the full moon day of second Waso, \( MO \) = 1954168.050623, \( WO \) = -1.


၄.၄။ ပထမခေတ် ၏ လထပ်ခြင်း နှင့် ဝါဆိုလပြည့်နေ့

ပထမခေတ်က ရတနာပူရ အင်းဝခေတ် လထပ် စည်းကမ်းကို သုံးခဲ့တဲ့ ခေတ်ဖြစ်ပြီး ၁၉ နှစ် လစက်ဝန်း (Metonic cycle) ကို အခြေခံပါတယ်။ မြန်မာ သက္ကရာဇ်ကို ၁၉ နဲ့စားပြီး အကြွင်း ၂၊ ၅၊ ၇၊ ၁၀၊ ၁၃၊ ၁၅၊ ၁၈ ရတဲ့နှစ်တွေမှာ လထပ် ပါတယ်။ ခြွင်းချက်အနေနဲ့ သက္ကရာဇ် ၁၂၀၂ မှ လထပ်ရမယ့် အစား ၁၂၀၁ မှာလထပ်ထားတာ တွေ့ ရပါတယ်။ ဦးအုန်းကြိုင်က "၁၉ ခုဝါဒ လထပ်ကိန်း မူသေကိန်းဖြင့် သက္ကရာဇ် ၁၂၀၁ ၌ လထပ်မပြုဘဲလျက် အမ္မာဝါသီ နှစ်ထပ်မြင်ခြင်းကို ရှု၍ လထပ်သောကြောင့် မူသေလထပ်နည်း တကြိမ် ပြောင်းခဲ့၏။" လို့ဆိုပါတယ် [Kyaing, 1964], p-182 ။ မြန်မာ သက္ကရာဇ် ၁၂၁၇ (1855 CE) ကစပြီး ၁၉ နှစ်နည်းကို မသုံးတော့ပေမယ့် စာတမ်းတချို့ နဲ့ တချို့အင်တာနက်စာမျက်နှာ တွေ၊ ဥပမာ သိပ်မကြာသေးခင်ကမှ ထုတ်ဝေတဲ့ [Chatterjee, 1998] မှာ မြန်မာ ပြက္ကဒိန်က အခုထက်ထိ ၁၉ နှစ် Metonic cycle ကို သုံးတယ်လို့ မှားယွင်းဖော်ပြထားတာကို တွေ့ရပါတယ်။
မြန်မာ ပြက္ခဒိန် ပထမခေတ်မှာ တွက်နည်း သုံးမျိုးရှိခဲ့ ပါတယ် [Irwin, 1909] p-15။ အဲဒီနည်းတွေနဲ့ သူတို့ကို သုံးခဲ့တဲ့ အချိန်အပိုင်းအခြား တွေကို အောက်က ဇယားမှာ ပြထားပါတယ်။

ပထမခေတ်၏ တွက်နည်းများ
ဖော်ပြချက် မြန်မာနှစ် သတ်မှတ်ချက်
မကာရန္တကျမ်း တွက်နည်း မြန်မာနှစ် ၀ ခုနှစ်မှ ၇၉၇ ခုနှစ်ထိ။ ပုပ္ပားစောရဟန်း သက္ကရာဇ် ဖြိုကြွင်းမှ စသည်။
ဒုတိယ မကာရန္တကျမ်း တွက်နည်း မြန်မာနှစ် ၇၉၈ ခုနှစ် မှ ၁၀၉၉ ခုနှစ်ထိ။ အင်းဝမိုးညှင်းမင်း လက်ထက်မှ စသည်။
သံဒိဋ္ဌ တွက်နည်း မြန်မာနှစ် ၁၁၀၀ ခုနှစ်မှ ၁၂၁၆ ခုနှစ်ထိ။


ပထမခေတ် ရဲ့ ဒုတိယဝါဆိုလပြည့်နေ့တွေကို စစ်ဆေးကြည့်တဲ့အခါ တတိယခေတ်ရဲ့ နည်းအတိုင်း အကုန် တွက်လို့ရပြီး၊ ရက်ပို မပို ဆုံးဖြတ်မယ့်အချိန်ကို သတ်မှတ်ထားတဲ့ လအရေအတွက် \( NM \) နဲ့ ကိန်းသေ ဝါဆိုညှိကိန်း \( WO \) နေရာမှာပဲ အောက်ကတန်ဖိုးတွေကို ပြောင်းသုံးဖို့လို ပါတယ်။
$$NM = -1$$
မြန်မာနှစ် ၁၁၀၀ မတိုင်မီ အတွက်
$$WO=-1.1$$
ကိုသုံးပြီး သက္ကရာဇ် ၁၁၀၀ နောက်ပိုင်း ဒုတိယခေတ် မတိုင်မီထိ
$$WO=-0.85$$
ဖြစ်ပါတယ်။ လက်ရှိမှတ်တမ်း တချို့ [Toe, 1999] နဲ့ နှိုင်းယှဉ်ကြည့်တဲ့အခါ ထုံးစံအတိုင်း ခြွင်းချက်တချို့တော့ရှိပါတယ်။ သူတို့ကိုဇယားနဲ့မှတ်ပြီး ပြင်နိုင်ပါတယ်။
ဒီပထမခေတ်ရဲ့ ဝါထပ်၊ မထပ် စစ်တဲ့နည်း နဲ့ ဒုတိယ ဝါဆို လပြည့် ရှာတဲ့နည်း ကို အောက်ကအတိုင်း အနှစ်ချုပ် ဖော်ပြနိုင်ပါတယ်။

ပထမခေတ် ဝါထပ် နဲ့ ဒုတိယ ဝါဆို လပြည့်
ဖော်ပြချက် ညီမျှခြင်း
ရှာလိုသော မြန်မာနှစ် \( my \) အတွက် ရက်ပို \( ed \) ကိုရှာပါ။   \( ed =( SY ( my + 3739 ) ) \text{ mod } LM \)
where \( SY \) = 365.2587565, \( my \) = Myanmar year, \( LM \) = 29.53058795, \( ed \) = excess days.
ရက်ပို က \( TA \) ထက်ငယ်ရင် \( LM \) ပြန်ပေါင်းပေးပြီး ညှိ။ If ed < 11.799343 then
  ed = ed + 29.53058795
end if
မြန်မာ သက္ကရာဇ်ကို ၁၉ နဲ့စားပြီး အကြွင်း ၂၊ ၅၊ ၇၊ ၁၀၊ ၁၃၊ ၁၅၊ ၁၈ ရတဲ့နှစ်တွေမှာ လထပ် ပါတယ်။ \( watat=(my \times 7+2) \text{ mod } 19 \)
If watat < 0 then
  watat = watat + 19
end if
\( watat=\lfloor \frac{watat}{12} \rfloor \)
ဝါထပ်ပါက ဒုတိယ ဝါဆိုလပြည့်နေ့ \( w \) ကို ရှာပါ။ \(w = \lfloor SY . my + MO - ed + 4.5 LM + WO \rceil \)
where \( w \) = the full moon day of second Waso, \( MO \) = 1954168.050623, \( WO \) = -1.1 for my < 1100 ME and -0.85 for my ≥ 1100 ME.


ဝါထပ်မထပ် စစ် ပြီး ဝါထပ်ရင် ဒုတိယ ဝါဆို လပြည့်နေ့ကို ရှာပေးတဲ့ javascript ပရိုဂရမ်ကို အောက်မှာ ဖော်ပြထားပါတယ်။
  //Era definition
  var g_eras=[
  //-------------------------------------------------------------------------
  //The first era (the era of Myanmar kings: ME1216 and before)
   //Makaranta system 1 (ME 0 - 797)
  {
   "eid":1.1,//era id
   "begin":-999,//beginning Myanmar year
   "end":797,//ending Myanmar year
   "WO":-1.1,// watat offset to compensate
   "NM":-1,//number of months to find excess days
   "fme":[[205,1],[246,1],[471,1],[572,-1],[651,1],[653,2],[656,1],[672,1],
      [729,1], [767,-1]],//exceptions for full moon days
   "wte":[]//exceptions for watat years
  },
   //Makaranta system 2 (ME 798 - 1099)
  {
   "eid":1.2,//era id
   "begin":798,//beginning Myanmar year
   "end":1099,//ending Myanmar year
   "WO":-1.1,// watat offset to compensate
   "NM":-1,//number of months to find excess days
   "fme":[[813,-1],[849,-1],[851,-1],[854,-1],[927,-1],[933,-1],[936,-1],
      [938,-1],[949,-1],[952,-1],[963,-1],[968,-1],[1039,-1]],
      //exceptions for full moon days
   "wte":[]//exceptions for watat years
  },
  //Thandeikta (ME 1100 - 1216)
  {
   "eid":1.3,//era id
   "begin":1100,//beginning Myanmar year
   "end":1216,//ending Myanmar year
   "WO":-0.85,// watat offset to compensate
   "NM":-1,//number of months to find excess days
   "fme":[[1120,1],[1126,-1],[1150,1],[1172,-1],[1207,1]],//exceptions for full moon days
   "wte":[[1201,1],[1202,0]]//exceptions for watat years
  },
  //---------------------------------------------------------
  //The second era (the era under British colony: 1217 ME - 1311 ME)
  {
   "eid":2,//era id
   "begin":1217,//beginning Myanmar year
   "end":1311,//ending Myanmar year
   "WO":-1,// watat offset to compensate
   "NM":4,//number of months to find excess days
   "fme":[[1234,1],[1261,-1]],//exceptions for full moon days
   "wte":[[1263,1],[1264,0]]//exceptions for watat years
  },
  //---------------------------------------------------------
  //The third era (the era after Independence 1312 ME and after)
  {
   "eid":3,//era id
   "begin":1312,//beginning Myanmar year
   "end":9999,//ending Myanmar year
   "WO":-0.5,// watat offset to compensate
   "NM":8,//number of months to find excess days
   "fme":[[1377,1]],//exceptions for full moon days
   "wte":[[1344,1],[1345,0]]//exceptions for watat years
  }
  ];
  //-------------------------------------------------------------------------
  //Check watat (intercalary month)
  //input: (my -myanmar year)
  //output:  ( watat - intercalary month [1=watat, 0=common]
    //  fm - full moon day of 2nd Waso in jdn [valid for watat years only])
  //dependency: chk_exception(my,fm,watat,ei)
  function chk_watat(my) {
   for(var i=g_eras.length-1;i > 0;i--) if(my >= g_eras[i].begin) break;//get data for respective era
   var era=g_eras[i]; var NM=era.NM,WO=era.WO;
   var SY=1577917828/4320000; //solar year (365.2587565)
   var LM=1577917828/53433336; //lunar month (29.53058795)
   var MO=1954168.050623; //beginning of 0 ME

   var TA=(SY/12-LM)*(12-NM); //threshold to adjust
   var ed=(SY*(my+3739))%LM; // excess day
   if(ed < TA) ed+=LM;//adjust excess days
   var fm=Math.round(SY*my+MO-ed+4.5*LM+WO);//full moon day of 2nd Waso
   var TW=0,watat=0;//find watat
   if (era.eid >= 2) {//if 2nd era or later find watat based on excess days
    TW=LM-(SY/12-LM)*NM;
    if(ed >= TW) watat=1;
   }
   else {//if 1st era,find watat by 19 years metonic cycle
   //Myanmar year is divided by 19 and there is intercalary month
   //if the remainder is 2,5,7,10,13,15,18
   //https://github.com/kanasimi/CeJS/blob/master/data/date/calendar.js#L2330
    watat=(my*7+2)%19; if (watat < 0) watat+=19;
    watat=Math.floor(watat/12);
   }
   i=bSearch(my,era.wte); if (i >= 0) watat=era.wte[i][1];//correct watat exceptions
   if(watat) {i=bSearch(my,era.fme); if(i >= 0) fm+=era.fme[i][1]; }//correct full moon day exceptions
   return {fm:fm,watat:watat};
  }



၅။ ရက်ထပ်ခြင်း

မြန်မာနှစ်တနှစ် မှာ လထပ်ရင် ဝါထပ်နှစ်လို့ခေါ်ပြီး၊ ဝါထပ်နှစ်မှာပဲ ရက်ထပ်လို့ရပါတယ်။ ရက်မထပ်တဲ့ ဝါထပ်နှစ်ကို ဝါငယ်ထပ်နှစ်လို့ခေါ်ပြီး ဝါဆိုလရဲ့ ရှေ့မှာ ရက် ၃၀ ရှိတဲ့ ပထမဝါဆိုလ ထပ်ပေါင်းထားပါတယ်။ ဝါထပ်နှစ်မှာ ရက်ပါထပ်ရင် ဝါကြီးထပ်နှစ်လို့ ခေါ်ပြီး ဝါဆိုလရဲ့ ရှေ့မှာ ၃၁ ရက် (ပထမ ဝါဆိုလ မှာ ရက် ၃၀ နဲ့ အဲဒီရှေ့ကပ်ရပ် နယုန်လ အကုန်မှာ ၁ ရက်) ထပ်ပေါင်းပါတယ်။ ဒါကြောင့် သာမန်နှစ်တွေကို ရက်ထပ်မထပ် စစ်ဖို့ မလိုပါဘူး။ နှစ်တနှစ်က ဝါထပ်ခဲ့ရင်တော့ ရက်ထပ်မထပ်စစ်ဖို့ သူ့ရဲ့ ဒုတိယ ဝါဆိုလပြည့်ရက် ကို ရှာပါမယ်။ နောက်တစ်ခါ အဲဒီနှစ် မတိုင်ခင် အနီးဆုံး ဝါထပ်နှစ်ရဲ့ ဒုတိယ ဝါဆိုလပြည့်ကိုလည်း ရှာပါမယ်။ အဲဒီလပြည့်ရက် နှစ်ရက်ရဲ့ ခြားနားတဲ့ ရက်အရေအတွက်ကို သာမန်နှစ်တနှစ်မှာရှိတဲ့ ရက်အရေအတွက် ၃၅၄ ရက် နဲ့ စားပါမယ်။ ရတဲ့ အကြွင်းက ၃၀ ဆိုရင် ပထမဝါဆိုလ တစ်လပဲ ပေါင်းဖို့လိုတာမို့ အဲဒီနှစ်က ဝါငယ်ထပ်နှစ်ဖြစ်ပြီး၊ အကြွင်းက ၃၁ ဆိုရင်တော့ ပထမဝါဆိုအပြင်၊ နယုန်လကိုပါ တစ်ရက်ထပ်ပေါင်းဖို့ လိုတာကြောင့် အဲဒီနှစ်က ဝါကြီးထပ်နှစ်ဖြစ်ပါတယ်။

ဥပမာ။ ။ ရက်ပို ၂၄.၁၀၉၄၃၈၅ ရက် ရှိပြီး ဝါထပ်တဲ့ ၁၃၇၄ ခုနှစ်ကို ဝါကြီးလား၊ ဝါငယ်လား စစ်ပါ။ ၁၃၇၄ ခုနှစ် ရဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့ရဲ့ ဂျူလီယန်ရက်နံပါတ်က ၂၄၅၆၁၄၂ ပါ။

အဖြေ။ ။

အဆင့် ၁။ အနီးဆုံး ဝါထပ်နှစ်ကို ရှာခြင်း

ပထမဆုံး သူ့ရှေ့ကပ်ရပ် ၁၃၇၃ ခုနှစ်ရဲ့ ရက်ပိုကို ရှာလိုက်တော့ ၁၃.၂၁၇၇၃၇၅ ရက်လို့ရပါတယ်။ ရလာတဲ့ ရက်ပိုက TA = ၃.၆၃၀၅၆၇ ရက် ထက် မငယ်လို့ ချိန်ညှိဖို့ မလိုပါ။ TW = ၂၂.၂၆၉၄၅၃၉ ရက်ထက် ငယ်တဲ့အတွက် ဝါမထပ်ပါဘူး။
ဒါကြောင့် နောက်ထပ် တစ်နှစ်ထပ်လျှော့ပြီး ၁၃၇၂ ခုနှစ်ရဲ့ ရက်ပို ကိုရှာတော့ ၂.၃၂၆၀၃၆၃ ရပါတယ်။ TA = ၃.၆၃၀၅၆၇ ရက် ထက် ငယ်လို့ LM = ၂၉.၅၃၀၅၈၇၉၅ ပြန်ပေါင်းပြီး ရက်ပိုညှိတဲ့အခါ ၁၃၇၂ ရဲ့ရက်ပိုကို ၃၁.၈၅၆၆၂၄၃ လို့ရပါတယ်။ TW = ၂၂.၂၆၉၄၅၃၉ ရက်ထက် ကြီးတဲ့ အတွက် ဝါထပ်နှစ်ဖြစ်ပါတယ်။

အဆင့် ၂။ လပြည့်ရက် နှစ်ရက်ရက်ရဲ့ ခြားနားတဲ့ ရက်အရေအတွက်ကိုရှာပြီး အကြွင်းစစ်ခြင်း

၁၃၇၂ ၏ ဒုတိယ ဝါဆိုလပြည့်နေ့ ကို round( SY . 1372 + MO - 31.8566243 + 4.5 LM + WO ) = 2455404 ဟုရပါတယ်။ အဲဒီရက်ကို ၁၃၇၄ ရဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့ ၂၄၅၆၁၄၂ ကနေနုတ်တဲ့အခါ ၂၄၅၆၁၄၂-၂၄၅၅၄၀၄=၇၃၈ ရက်ဖြစ်ပြီး၊ ၃၅၄ ရက်နဲ့ အကြွင်းရှာရာ ၃၀ ရတာမို့ ၁၃၇၄ ကဝါငယ်ထပ် နှစ်ဖြစ်ပါတယ်။





၆။ တန်ခူးလဆန်းတစ်ရက်

မြန်မာနှစ်တနှစ်မှာ နှစ်ဦးမှာရှိတဲ့ တန်ခူးလရဲ့ လဆန်းတစ်ရက်နေ့ ရယ်၊ နှစ်အမျိုးအစား ( သာမန်လား၊ ဝါငယ်လား၊ ဝါကြီးလား) ဆိုတာသိရင် အဲဒီနှစ်ရဲ့ ကျန်တဲ့ရက်တွေအားလုံးကို သိနိုင်ပါတယ်။ ဦးအုန်းကြိုင် [Kyaing, 1964] က ရက်ပိုကို တွက်ပြီး နှစ်ဆန်းချိန်ထဲက ရက်ပိုကို နုတ်ပြီး တန်ခူးလ ဆန်း ၁ ရက် ရှာတာကို တွေ့ရှိမှတ်သားဘူး ပါတယ်။ စဉ်းစားကြည့်ပြီး၊ ချတွက်ကြည့်ပြီးတဲ့ အခါ အဲဒီနည်းက အမြဲမမှန်ပဲ နှစ်တော်တော်များများမှာ မှားတာကို တွေ့ရပါတယ်။ ဘာကြောင့်လဲဆိုရင် မြန်မာ ပြက္ခဒိန်မှာ ရက်ကို မှန်အောင် ပြန်ချိန်ညှိပေးတဲ့ ယန္တရား (mechanism) က ဝါထပ်နှစ်မှာပဲ ဒုတိယ ဝါဆိုလ မတိုင်ခင် လထပ်၊ ရက်ထပ်တာကပဲ တစ်ခုတည်းသော နည်းဖြစ်ပါတယ်။ ကျန်တဲ့ လတွေနဲ့ ဝါမထပ်တဲ့ နှစ်တွေမှာ လွဲတဲ့ရက် ပေါ်လာရင် ဘာမှလုပ်လို့ မရပါဘူး။ နောက်တစ်ကြိမ် ဝါထပ်တဲ့ အခါမှပဲ ပြန်တည့်မတ်သွားမှာ ဖြစ်ပါတယ်။ ဒါ့ကြောင့် မြန်မာ ပြက္ခဒိန်မှာ ဒုတိယ ဝါဆိုလပြည့်နေ့က ပုံမှန် အဖြစ်ဆုံးလို့ဆိုတာပါ။ မြန်မာနှစ်တနှစ်ရဲ့ နှစ်ဦးမှာရှိတဲ့ တန်ခူးလရဲ့ လဆန်း ၁ ရက်နေ့ကို ရှာရင်လည်း ရှာမယ့် နှစ်မတိုင်ခင် အနီးဆုံး ဝါထပ်နှစ်ရဲ့ ဝါဆိုလပြည့်နေ့ ကို ကိုးကားရှာဖွေမှပဲ မှန်တဲ့ နေ့ကိုရနိုင်ပါတယ်။ နှစ်တစ်နှစ်ရဲ့ အစပိုင်း တန်ခူးလဆန်း ၁ ရက် (tg1) ကို အဲဒီနှစ်မတိုင်ခင် အနီးဆုံး ဝါထပ်နှစ်ရဲ့ ဝါဆိုလပြည့်ရက် (w1) ရယ်၊ အဲဒီနှစ်နဲ့ အနီးဆုံးဝါထပ်နှစ်အကြား မှာ ရှိတဲ့ သာမန်နှစ်အရေအတွက် (yd) ကို ၃၅၄ နဲ့ မြှောက်ထားတဲ့ မြှောက်လဒ် ရယ်ပေါင်းပြီး၊ အဲဒီရလဒ်ထဲက ၁၀၂ ရက်ကိုပြန်နုတ် ပေးပြီးရှာနိုင်ပါတယ်။
$$tg1 = w1 + 354 . yd - 102$$

ဥပမာ။ ။သက္ကရာဇ် ၁၃၇၄ ရဲ့ တန်ခူးလဆန်းတစ်ရက်ကို ရှာပါ။ အနီးဆုံး ဝါထပ်နှစ်က ၁၃၇၂ ခုနှစ်ဖြစ်ပြီး၊ သူ့ရဲ့ ဒုတိယ ဝါဆိုလပြည့်နေ့က ၂၄၅၅၄၀၄ ဖြစ်ပါတယ်။

အဖြေ။ ။
ခြားနားတဲ့ သာမန် နှစ် အရေအတွက် yd = 1374-1372 = 2
tg1 =w1 + 354 . yd - 102
= 2455404 + 354 * 2 - 102
= 2456010

ရလာတဲ့ ဂျူလီယန် ရက်တန်ဖိုးကို Julian Date to Western Date Converter မှာ ပြောင်းကြည့်တဲ့ အခါ ခရစ်နှစ် ၂၀၁၂၊ မတ်လ၊ ၂၃ ရက် နေ့လို့ရပါတယ်။



ဝါကြီးထပ်လား၊ ဝါငယ်ထပ်လား စစ်ပြီး၊ တန်ခူးလရဲ့ ပထမဆုံးနေ့ကို ရှာပေးတဲ့ javascript ပရိုဂရမ်ကို အောက်မှာ ဖော်ပြထားပါတယ်။
  //Check Myanmar Year
  //input: (my -myanmar year)
  //output:  (myt :year type [0=common, 1=little watat, 2=big watat],
    //tg1 : the 1st day of Tagu as Julian Day Number
    //fm : full moon day of [2nd] Waso as Julain Day Number)
    //werr: watat error
  //dependency: chk_watat(my)
  function chk_my(my) {
   var yd=0,y1,nd=0,werr=0,fm=0;
   var y2=chk_watat(my); var myt=y2.watat;
   do{ yd++; y1=chk_watat(my-yd);}while(y1.watat==0 && yd < 3);
   if(myt) { nd=(y2.fm-y1.fm)%354; myt=Math.floor(nd/31)+1;
    fm=y2.fm; if(nd!=30 && nd!=31) {werr=1;} }
   else fm=y1.fm+354*yd;
   var tg1=y1.fm+354*yd-102;
   return {myt:myt,tg1:tg1,fm:fm,werr:werr};
  }




၇။ လ နှင့် ရက်

မြန်မာ ပြက္ခဒိန် ရဲ့ တန်ခူးလဆန်း တစ်ရက်နေ့ကို သိရင် လနှင့်ရက် ကို ရှာဖို့ လွယ်ကူပါတယ်။ မြန်မာလ နဲ့ ရက်ကိုရှာဖို့ အတွက် ရှာလိုတဲ့ရက်ရဲ့ ဂျူလီယန်ရက်နံပါတ် (jdn) ကနေ နှစ်ဦးမှာ ရှိတဲ့ တန်ခူးလဆန်း ၁ ရက် (tg1) ကို နုတ်၊ တစ်ပေါင်းပေးပြီး၊ နှစ်စကနေ လက်ရှိရက်ထိ စုစုပေါင်း ရက်အရေအတွက် (dd) ကို အရင် ရှာပါမယ်။
$$dd = jdn - tg1 + 1$$

၇.၁။ လ

ကမ္ဘာသုံး ဂရီဂိုရီရမ် ပြက္ခဒိန်မှာ ဇန်နဝါရီလ တစ်ရက်နေ့ ရောက်ရင် နှစ်ဆန်း တစ်ရက်နေ့ ဖြစ်ပေမယ့်၊ မြန်မာ ပြက္ခဒိန် ကတော့ တန်ခူး လဆန်း တစ်ရက် ရောက်လည်း နောက် နှစ်မရောက်ပါဘူး။ သင်္ကြန် အတက်နေ့ ရဲ့ နောက်ရက်မှပဲ မြန်မာ နှစ်ဆန်းတစ်ရက် ကိုရောက်တာပါ။ နှစ်ဆန်းတစ်ရက်က တန်ခူး (ဒါမှမဟုတ်) ကဆုန် လရဲ့ ကျချင်တဲ့ရက်မှာ ကျတာမို့ နှစ်ဆန်းတစ်ရက်ရဲ့ နောက်ပိုင်း ရက်တွေပဲ နောက်နှစ်မှာ ပါတာပါ။ နောက်နှစ် မရောက်သေးခင် တန်ခူး၊ ကဆုန် လ တွေရဲ့ အပိုင်းတွေကလက်ရှိနှစ် ကုန်ခါနီး နောက်ဆုံးနားမှာ ရှိလို့ နှောင်းတန်ခူး၊ နှောင်းကဆုန် ဆိုပြီးခေါ်ကြပါတယ်။
တန်ခူး လဆန်း တစ်ရက် နဲ့ နှစ်ဆန်းတစ်ရက်နေ့ မတူညီတာမို့ မြန်မာ နှစ်တစ်နှစ် တိုင်း မှာ၊ နှစ်ဦးပိုင်းမှာ တန်ခူးလ တစ်ပိုင်း၊ နှစ်ကုန်ပိုင်းမှာ တန်ခူးလ တစ်ပိုင်း ရှိပါတယ်။ နှစ်ဦးပိုင်းမှာ ရှိတဲ့ တန်ခူးလကို ဦးတန်ခူး လို့ခေါ်ပြီး၊ နှစ်ကုန်ပိုင်းမှာရှိတဲ့ တန်ခူးကို နှောင်းတန်ခူး လို့ခေါ်ပါတယ်။ ဥပမာ အနေနဲ့ မြန်မာ သက္ကရာဇ် ၁၃၇၅ ခု တန်ခူးလ လို့ဆိုရင် မပြည့်စုံပါဘူး။ ဘာကြောင့်လဲ ဆိုတော့ ၁၃၇၅ ခု ဦးတန်ခူး ဆိုရင် ခရစ်နှစ် ၂၀၁၃ ၊ ဧပြီ ဖြစ်ပြီး၊ ၁၃၇၅ ခု နှောင်း တန်ခူး ဆိုရင် ခရစ်နှစ် ၂၀၁၄၊ ဧပြီ ဖြစ်လို့၊ ဦးတန်ခူး နဲ့ နှောင်းတန်ခူး ကွာသွားရင် အချိန် တစ်နှစ်စာလောက်တက်တက်စင် အောင် လွဲ နိုင်လို့ ဖြစ်ပါတယ်။
ရိုးရိုးနှစ်၊ ဝါငယ်ထပ်နှစ် နဲ့ ဝါကြီးထပ်နှစ် တွေ အတွက် စုစုပေါင်း ရက်အရေအတွက် က ၃၅၄၊ ၃၈၄ နှင့် ၃၈၅ အသီးသီးဖြစ်ပါတယ်။ သာမန် နှစ်လား၊ ဝါထပ်နှစ်လား ပြတဲ့ ကိန်းရှင် င (common year) က သာမန် နှစ်ဆို ရင် 1 ၊ ဝါထပ်ရင် 0 လို့ထားပါမယ်။ နောက်တစ်ခါ ရက်ထပ်မထပ် ပြတဲ့ ကိန်းရှင် b (big watat) က ရက်ထပ်ရင် 1 ၊ ရက်မထပ်ရင် 0 လို့ ရှိမယ်ဆိုရင်၊ နှစ်တနှစ်မှာ ရှိတဲ့ ရက်အရေအတွက် (myl) ကို အောက်က ညီမျှခြင်းနဲ့ ရှာနိုင်ပါတယ်။
$$ myl = 354 + 30 ( 1 - c ) + b $$
နှစ်ဦးမှာ ရှိတဲ့ တန်ခူးလ ရဲ့ လဆန်း ၁ ရက် (tg1) ကနေ စရေတွက်ခဲ့တဲ့ ရက်အရေအတွက် (dd) က လက်ရှိနှစ်အမျိုးအစားရဲ့ စုစုပေါင်း ရက်အရေအတွက်ထက် ကျော်နေရင် နှောင်းတန်ခူး ဒါမှ မဟုတ် နှောင်းကဆုန် အမျိုးအစားဖြစ်ပြီး၊ စုစုပေါင်းရက်ကို ပြန်နုတ်ပြီး ချိန်ညှိပေးပါမယ်။ နှောင်း လလား၊ ဦး လလား ဆိုတဲ့ လအမျိုးအစား (mmt) ကို အောက်က အတိုင်းရှာနိုင်ပါတယ်။
$$mmt = \lfloor \frac{dd-1}{myl} \rfloor $$
mmt က 1 ဆိုရင် နှောင်းဖြစ်ပြီး၊ 0 ဆိုရင် ဦး ဖြစ်ပါတယ်။ တကယ်လို့ နှောင်းလ ဖြစ်ခဲ့ရင် အဲဒီနှစ်အမျိုးအစားရဲ့ ရက်အရေအတွက် (myl) ကို ပြန်နုတ်ပေးဖို့ လိုတာမို့ ၊ အောက်က အတိုင်း ရက်အရေအတွက် (dd) ကို ချိန်ညှိနိုင်ပါတယ်။
$$ dd = dd - mmt . myl $$
ရက်အရေအတွက် ကနေ လ ကိုရှာရတာ လွယ်ကူပါတယ်။ ဥပမာ နှစ်စကနေ ၆၂ ရက်မြောက်နေ့လို့ ရက်အရေအတွက်သိရင်၊ တန်ခူးလ အတွက် ၂၉ ရက်နုတ်၊ နောက်တစ်ခါ ကဆုန်လအတွက် ၃၀ ရက် ထပ်နုတ်ပြီးတဲ့ အခါ ၃ ရက်ပဲကျန်တဲ့ အတွက် အဲဒီရက်က နယုန်လ ထဲမှာ ဖြစ်တယ်လို့ သိနိုင်ပါတယ်။ ကွန်ပျူတာ ပရိုဂရမ်အတွက် ဆိုရင် အဲဒီလို စစ်လိုက်၊ ပြန်နုတ်လိုက် ထပ်ကာထပ်ကာ လုပ်တာက မထိရောက်ဘူး ထင်တာနဲ့ ညီမျှခြင်း နဲ့ဖော်ပြ ဖို့ ကြိုးစားထား ပါတယ်။ နောက်တစ်ချက်က ဂရီဂိုရီရမ် ပြက္ခဒိန်တွေမှာ အဲဒီလို ညီမျှခြင်းတွေရှိပြီး၊ မြန်မာ ပြက္ခဒိန် အတွက် လ နဲ့ ရက် စပ်ဆက်မှု ကို တိုက်ရိုက် ဖော်ပြ တွက်ချက် နိုင်တဲ့ ညီမျှခြင်း မရှိသေးတာမို့၊ ညီမျှခြင်း နဲ့ အခုလို ဖော်ပြ နိုင်တာကို ကျေနပ်မိပါတယ်။
မြန်မာ လနံပါတ် ကို 'mm' လို့ခေါ်မယ်ဆိုရင် သူ့ကို ခုနက ပြောခဲ့တဲ့ 'b' (big watat) နဲ့ 'c' (common year) ကနေ အောက်ပါအတိုင်း တွက်လို့ ရပါတယ်။ မြန်မာလကို ရတဲ့အခါ ရက်အရေအတွက် 'dd' ထဲက အဲဒီလ မစခင် အရင် လတွေရဲ့ ရက်အရေအတွက် စုစုပေါင်းကို ပြန်နုတ်ပေးလိုက်ရင် ၊ မြန်မာရက် 'md' ကို ရပါတယ်။ အဲဒီမှာ 'mod' က အကြွင်းရှာပေးတဲ့ လုပ်ဆောင်ချက်ဖြစ်ပါတယ်။
$$ a= \lfloor \frac{dd+423}{512} \rfloor $$ $$ mm= \lfloor \frac{ dd - a . b + 30 . a . c + 29.26 }{29.544} \rfloor $$ $$ e= \lfloor \frac{mm+12}{16} \rfloor $$ $$ f= \lfloor \frac{mm+11}{16} \rfloor $$ $$ md = dd - \lfloor 29.544 \times mm - 29.26 \rfloor - b . e + 30 . c . f $$ $$ mm = mm + 3f - 4e $$ အဲဒီမှာ ရလာတဲ့ 'mm' က မြန်မာလ နံပါတ်ဖြစ်ပါတယ်။
မြန်မာ လ 'mm' မှာရှိတဲ့ စုစုပေါင်းရက် အရေအတွက် 'mml' ကို ရှာပေးတဲ့ ညီမျှခြင်းကို လည်း ဖော်ပြထားပါတယ်။

$$ mml = 30 - mm \text{ mod } 2 $$
ဝါကြီးထပ်နှစ် ရဲ့ နယုန်လ ဖြစ်ရင်တော့ ၁ ရက် ပေါင်းပေးဖို့ လိုပါတယ်။
$$ \begin{align} & \text{if mm==3 then} \\ & mml = mml + b \\ & \text{end if} \end{align} $$

၇.၂။ ရက်

လတစ်လ မှာ ၁ ရက်ကနေ ၁၄ ရက်ထိ ကို လဆန်းရက်တွေ လို့ခေါ်ပြီး ၊ ၁၅ ရက် ဆိုပါက လပြည့်နေ့ ဖြစ်ပါတယ်။ ၁၅ ရက်ကျော်ရင် ၁၅ ပြန်နုတ်ပေးပြီး လဆုတ် ဒါမှမဟုတ် လပြည့်ကျော် လို့ခေါ်ပါတယ်။ ဥပမာ ၁၆ ရက်ဆိုပါက လဆုတ် ၁ ရက်ဖြစ်ပါတယ်။ လတစ်လ ရဲ့နောက်ဆုံးရက်ကို လကွယ် ရက်လို့ခေါ်ပါတယ်။ လဆန်းရက်၊ လဆုတ် ရက် တွေကို 'fd' (fortnight day) လို့ ခေါ်လိုက်ပါမယ်။ လရဲ့ အခြေအနေ ကို mp (moon phase) လို့ခေါ်လိုက်ပြီး၊ mp ရဲ့ တန်ဖိုးသတ်မှတ်ချက် မှာ ၀ ဆိုပါက လဆန်း၊ ၁ ဆိုပါက လပြည့်၊ ၂ ဆိုပါက လဆုတ်၊ ၃ ဆိုပါက လကွယ် ဖြစ်ပါတယ်။ လတစ်လ ရဲ့ ရက်တွေကို md ၊ အဲဒီလရဲ့ စုစုပေါင်း ရှိတဲ့ ရက်ကို mml လို့ခေါ်မယ်ဆိုရင် ၊ လအခြေအနေ (mp) နဲ့ လဆန်းလဆုတ် ရက် (fd) တို့ကို အောက်က အတိုင်း တွက်နိုင်ပါတယ်။
$$ fd = md - 15 . \lfloor \frac{md}{16} \rfloor $$ $$ mp = \lfloor \frac{md + 1}{16} \rfloor + \lfloor \frac{md}{16} \rfloor + \lfloor \frac{md}{mml} \rfloor $$

၇.၃။ နေ့

ရက်သတ္တပါတ် မှာ ၇ ရက်ရှိပြီး၊ အဲဒီ ရက်သတ္တပါတ်ရဲ့ ရက်တွေကို နေ့လို့ ခေါ်ပါတယ်။ မြန်မာတွေမှာ နေ့တွေနဲ့ သူတို့အတွက် သတ်မှတ်ထားတဲ့ ဂဏန်း၊ အကောင်၊ အရပ်မျက်နှာ၊ ဂြိုဟ် တွေ ရှိပြီး၊ အဲဒါတွေကို အောက်ကဇယားမှာ ဖော်ပြထားပါတယ် [Wikipedia]။

ရက်သတ္တပါတ် ၏ နေ့များ
အင်္ဂလိပ် မြန်မာ ဂဏန်း အကောင် အရပ်မျက်နှာ ဂြိုဟ်
Sunday တနင်္ဂနွေ ဂဠုန် အရှေ့ မြောက် နေ
Monday တနင်္လာ ကျား အရှေ့
Tuesday အင်္ဂါ ခြင်္သေ့ အ ရှေ့ တောင် မားစ်
Wednesday ဗုဒ္ဓဟူး ဆင် တောင် မာကျူရီ
Thursday ကြာသပတေး ကြွက် အ နောက် ဂျူပီတာ
Friday သောကြာ ပူး မြောက် ဗီးနပ်စ်
Saturday စနေ နဂါး အနောက် တောင် စေတန်


ရက်တစ်ရက်ရဲ့ ဂျူလီယန်ရက်နံပါတ် (jdn) ကနေ နေ့နံပါတ် (wd) ကို ရှာတဲ့ ညီမျှခြင်းကို အောက်မှာ ဖော်ပြထားပါတယ်။
$$ wd = (jdn+2) \text{ mod } 7 $$


၈။ ဂျူလီယန်ရက်နံပါတ် မှ မြန်မာရက် သို့ပြောင်းခြင်း

ဂရီဂိုရီယန်ရက် ကနေ မြန်မာရက် ကိုပြောင်းတဲ့ တွက်နည်းကို အနှစ်ချုပ်ပြီး ပြန်ဖော်ပြရရင် အောက်ကအတိုင်း ဖြစ်ပါတယ်။

  1. တွက်လိုတဲ့ နေ့ရဲ့ ဂျုလီယန်ရက် တန်ဖိုး ကိုရှာပါ။
  2. ဂျုလီယန်ရက် တန်ဖိုး ကနေ မြန်မာနှစ်ကိုရှာပါ။
  3. ထိုမြန်မာနှစ်ကို ဝါထပ်မထပ်စစ်ပါ။
  4. ထိုနှစ် မတိုင်ခင် အနီးဆုံးဝါထပ်နှစ် နှင့် ဒုတိယဝါဆိုလပြည့်ကိုရှာပါ။
  5. ထိုနှစ်မှာ ဝါထပ်နှစ်ဖြစ်ပါက ဝါကြီး၊ ဝါငယ် စစ်ပါ။
  6. တန်ခူးလဆန်း တစ်ရက်နေ့ကိုရှာပါ။
  7. ရက်အရေအတွက်မှ နှစ်နှောင်းပိုင်းဟုတ်မဟုတ်နှင့် လ၊ရက် တို့ကိုရှာပါ။


ဥပမာ။ ။ ခရစ်နှစ် ၂၀၁၂ ခု၊ မေလ၊ ၂၃ ရက်နေ့ အတွက် မြန်မာ ရက်စွဲကို ရှာပါ။

အဖြေ။ ။

၁။ ဂျူလီယန် ရက်အရေ အတွက် ကိုရှာတော့ ၂၄၅၆၀၇၁ လို့ ရပါမယ်။ မတွက်ချင်ပါက အောက်ပါလင့်ခ် မှာ သွားပြောင်း ကြည့်နိုင်ပါတယ်။
Western Date to Julian Date Converter

၂။ နှစ်ရှာရာ မြန်မာနှစ် floor((2456071-1954168.5506)/365.2587565) = 1374 ခုနှစ်ရသည်။

၃။ ဝါထပ်မထပ်စစ်ရာ ၁၃၇၄ ခုနှစ်မှာ ရက်ပို ၂၄.၁ ရက်ရှိပြီး၊ ဝါထပ် သည်ကို တွေ့ရသည်။

၄။ ၁၃၇၄ မတိုင်မီ အနီးဆုံးဝါထပ်နှစ်မှာ ၁၃၇၂ ဖြစ်ပြီး၊ ထို ၁၃၇၂ ၏ ဒုတိယ ဝါဆိုလပြည့်မှာ ၂၄၅၅၄၀၄ ဖြစ်သည်။

၅။ ၁၃၇၄ ခု နှင့် ၁၃၇၂ ခု တို့၏ ဝါဆိုလပြည့်နေ့များမှာ ၂၄၅၆၁၄၂ နှင့် ၂၄၅၅၄၀၄ ဖြစ်ပြီး သူတို့၏ ခြားနားချက်မှာ ၇၃၈ ဖြစ်သည်။ ၃၅၄ နှင့် စား၍ အကြွင်းရှာရာ ၃၀ ရသဖြင့် ၁၃၇၄ ခုနှစ်သည် ဝါငယ်ထပ်နှစ်ဖြစ်သည်။

၆။ တန်ခူးလ တစ်ရက်နေ့မှာ ၂၄၅၅၄၀၄+၃၅၄*၂-၁၀၂=၂၄၅၆၀၁၀ ဟုရသည်။

၇။ ရက်အရေအတွက်မှာ ၂၄၅၆၀၇၁+၁-၂၄၅၆၀၁၀=၆၂ ရသည်။ ဝါငယ်ထပ်နှစ်ဖြစ်သော ၁၃၇၄ ၏ စုစုပေါင်းရက်အရေအတွက် ၃၈၄ ထက်ငယ်သဖြင့်၊ ၃၈၄ ပြန်နုတ်ရန်မလိုပဲ နှစ်နှောင်းပိုင်း မဟုတ်ကြောင်းသိရသည်။ တန်ခူးလ မှာ ၂၉ ရက်ဖြစ်သဖြင့် ၆၂ မှ နုတ်ရာ ၃၃ ကျန်သည်။ ကဆုန်လ ရက်သုံးဆယ် ထပ်နုတ်ရာ ၃ ရက်ကျန်သဖြင့်၊ ထိုနေ့သည် နယုန်လ ဆန်း ၃ ရက်ဖြစ်ကြောင်းသိနိုင်သည်။



ရှေ့မှာ ဖော်ပြခဲ့တဲ့ ဝါထပ်မထပ်စစ်တဲ့ ဖန်ရှင်နဲ့ တန်ခူးလဆန်း ၁ ရက်ကို ရှာတဲ့ ဖန်ရှင်ကို သုံးပြီး၊ မြန်မာ ရက်စွဲရှာတဲ့ javascript ကုဒ်ကို အောက်မှာ ဖော်ပြလိုက်ပါတယ်။
  //Julian date to Myanmar date
  //input: (jd -julian date)
  //output:  (my : year,
    //myt :year type [0=common, 1=little watat, 2=big watat],
    //myl: year length [354, 384, or 385 days],
    //mm: month [Tagu=1, Kason=2, Nayon=3, 1st Waso=0, (2nd) Waso=4, Wagaung=5, Tawthalin=6,
    //    Thadingyut=7, Tazaungmon=8, Nadaw=9, Pyatho=10, Tabodwe=11, Tabaung=12 ],
    //mmt: month type [1=hnaung, 0= Oo],
    //mml: month length [29 or 30 days],
    //md: month day [1 to 30],
    //fd: fortnight day [1 to 15],
    //mp :moon phase [0=waxing, 1=full moon, 2=waning, 3=new moon],
    //wd: week day [0=sat, 1=sun, ..., 6=fri] )
  //dependency: chk_my(my)
  function j2m(jd) {
   var SY=1577917828/4320000; //solar year (365.2587565)
   var MO=1954168.050623; //beginning of 0 ME
   var jdn,my,yo,dd,myl,mmt,a,b,c,e,f,mm,md,mml,mp,fd,wd;
   jdn=Math.round(jd);//convert jd to jdn
   my=Math.floor((jdn-0.5-MO)/SY);//Myanmar year
   yo=chk_my(my);//check year
   dd=jdn-yo.tg1+1;//day count
   b=Math.floor(yo.myt/2); c=Math.floor(1/(yo.myt+1)); //big wa and common yr
   myl=354+(1-c)*30+b;//year length
   mmt=Math.floor((dd-1)/myl);//month type: Hnaung =1 or Oo = 0
   dd-=mmt*myl; a=Math.floor((dd+423)/512); //adjust day count and threshold
   mm=Math.floor((dd-b*a+c*a*30+29.26)/29.544);//month
   e=Math.floor((mm+12)/16); f=Math.floor((mm+11)/16);
      md=dd-Math.floor(29.544*mm-29.26)-b*e+c*f*30;//day
      mm+=f*3-e*4; mml=30-mm%2;//adjust month and month length
   if(mm==3) mml+=b;//adjust if Nayon in big watat
   mp=Math.floor((md+1)/16)+Math.floor(md/16)+Math.floor(md/mml);
   fd=md-15*Math.floor(md/16);//waxing or waning day
   wd=(jdn+2)%7;//week day
   return {my:my,myt:yo.myt,myl:myl,mm:mm,mmt:mmt,mml:mml,md:md,
    mp:mp,fd:fd,wd:wd};
  }




၉။ မြန်မာရက် မှ ဂျူလီယန်ရက်နံပါတ် သို့ပြောင်းခြင်း

မြန်မာရက်ကနေ ဂျူလီယန်ရက်နံပါတ် ရှာတာက ပိုလွယ်ပါတယ်။ မြန်မာနှစ်က ရှိပြီးသား မို့ ရှေ့ကနည်းအတိုင်း တန်ခူးလဆန်း တစ်ရက်ရဲ့ ဂျူလီယန်နေ့နံပါတ် ကိုတိုက်ရိုက်ရှာလို့ ရပါတယ်။ မြန်မာလ လည်း ရှိပြီးသားမို့ ရှေ့မှာရှိတဲ့ လတွေရဲ့ စုစုပေါင်းရက်ကို နှစ်အမျိုးအစား အလိုက်ပေါင်းထည့်ပြီး၊ ရက်ကနေ တစ်နုတ်ပြီး ပေါင်းထည့်လိုက်ရင် အဲဒီနေ့အတွက် ဂျူလီယန်နေ့ နံပါတ်ရပါပြီ။ ဂျူလီယန်ရက်နံပါတ်ကနေ ဂရီဂိုရီယန်ရက် ကိုပြန်ပြောင်းနည်း ကလည်း ဖော်ပြပြီးဖြစ် ပါတယ်။ မြန်မာ လဆန်း၊ လဆုတ် အခြေအနေ 'mp'၊ လဆန်း၊ လဆုတ်ရက် 'fd' တို့ကနေ လက်ရှိမြန်မာလရဲ့ ရက် 'md' ကို အောက်ပါအတိုင်း ရှာနိုင်ပါတယ်။

$$ m1 = ms \text{ mod } 2$$ $$ m2 = \lfloor \frac{ms}{2} \rfloor $$ $$ md = m1 . ( 15 + m2 . ( mml - 15 ) ) + ( 1 - m1 ) . ( d + 15 . m2) $$

နှစ်စကနေ စရေခဲ့တဲ့ ရက်စုစုပေါင်း 'dd' ကို လ နဲ့ ရက် ကနေ အောက်ပါ အတိုင်းရှာနိုင်ပါတယ်။
$$ mm = mm + 4 - 4 . \lfloor \frac{mm+15}{16} \rfloor + \lfloor \frac{mm+12}{16} \rfloor $$ $$ dd = md + \lfloor 29.544 \times mm - 29.26 \rfloor - 30 c . \lfloor \frac{mm+11}{16} + b . \lfloor \frac{mm+12}{16}\rfloor $$
နှောင်း လ နဲ့ ဦး လ အတွက် ရက်စုစုပေါင်း 'dd' ကို လအမျိုးအစား 'mmt' ကို ကြည့်ပြီး အဲဒီနှစ်ရဲ့ ရက်အရေအတွက် 'myl' ကနေအောက်ပါ အတိုင်း ချိန်ညှိပါမယ်။ $$ myl = 354 + 30 ( 1 - c ) + b $$ $$ dd = dd + mmt . myl $$
အဲဒီနောက် ဂျူလီယန် ရက်နံပါတ်ကို တန်ခူးလဆန်း တစ်ရက်ကနေ ရှာလို့ ရပါပြီ။
$$jdn = dd + tg1 - 1$$
အနှစ်ချုပ်ပြီး ပြန်ဖော်ပြရရင် အောက်ကအတိုင်း ဖြစ်ပါတယ်။

  1. မြန်မာနှစ်ကို ဝါထပ်မထပ်စစ်ပါ။
  2. ထိုနှစ် မတိုင်ခင် အနီးဆုံးဝါထပ်နှစ် နှင့် ဒုတိယဝါဆိုလပြည့်ကိုရှာပါ။
  3. ထိုနှစ်မှာ ဝါထပ်နှစ်ဖြစ်ပါက ဝါကြီး၊ ဝါငယ် စစ်ပါ။
  4. တန်ခူးလဆန်း တစ်ရက်နေ့ကိုရှာပါ။
  5. နှစ်နှောင်းပိုင်းဟုတ်မဟုတ်နှင့် လ၊ရက် တို့မှ ရက်အရေအတွက်ကိုရှာ ပြီး တန်ခူးလဆန်း တစ်ရက်ကို ပေါင်း ပြီး တစ်နုတ်ပါ။


ဥပမာ။ ။ အပြန်အလှန်အနေနဲ့ မြန်မာနှစ် ၁၃၇၄ ခု၊ နယုန် လဆန်း ၃ ရက်က ခရစ်နှစ် ၂၀၁၂ ခု၊ မေလ၊ ၂၃ ရက်နေ့ ဖြစ်ကြောင်းပြပါ။

အဖြေ။ ။

၁။ ဝါထပ်မထပ်စစ်ရာ ၁၃၇၄ ခုနှစ်မှာ ရက်ပို ၂၄.၁ ရက်ရှိပြီး၊ ဝါထပ် သည်ကို တွေ့ရသည်။

၂။ ၁၃၇၄ မတိုင်မီ အနီးဆုံးဝါထပ်နှစ်မှာ ၁၃၇၂ ဖြစ်ပြီး၊ ထို ၁၃၇၂ ၏ ဒုတိယ ဝါဆိုလပြည့်မှာ ၂၄၅၅၄၀၄ ဖြစ်သည်။

၃။ ၁၃၇၄ ခု နှင့် ၁၃၇၂ ခု တို့၏ ဝါဆိုလပြည့်နေ့များမှာ ၂၄၅၆၁၄၂ နှင့် ၂၄၅၅၄၀၄ ဖြစ်ပြီး သူတို့၏ ခြားနားချက်မှာ ၇၃၈ ဖြစ်သည်။ ၃၅၄ နှင့် စား၍ အကြွင်းရှာရာ ၃၀ ရသဖြင့် ၁၃၇၄ ခုနှစ်သည် ဝါငယ်ထပ်နှစ်ဖြစ်သည်။

၄။ တန်ခူးလ တစ်ရက်နေ့မှာ ၂၄၅၅၄၀၄+၃၅၄*၂-၁၀၂=၂၄၅၆၀၁၀ ဟုရသည်။

၅။ နှစ်နှောင်းပိုင်း မဟုတ်သဖြင့် ဝါငယ်ထပ်နှစ်ဖြစ်သော ၁၃၇၄ ၏ စုစုပေါင်းရက်အရေအတွက် ၃၈၄ ပြန်ပေါင်းရန်မလိုပါ။ တန်ခူးလ အတွက်၂၉ ရက်၊ ကဆုန်လ အတွက် ၃၀ ရက်နှင့် လက်ရှိနယုန် လရှိ ၃ ရက် ပေါင်းရာ ၆၂ ရက်ရသည်။ တန်ခူးလဆန်း ၁ ရက်၏ ဂျူလီယန် ရက်စွဲထပ် ပေါင်းရာ ၂၄၅၆၀၁၀+၆၂-၁ =၂၄၅၆၀၇၁ ဟူ၍ရသည်။ ဂျူလီယန် ရက်အရေ အတွက် ၂၄၅၆၀၇၁ ကို ဂရီဂိုရီယန်ရက်စွဲ ပြောင်းရာခရစ်နှစ် ၂၀၁၂ ခု၊ မေလ၊ ၂၃ ရက်နေ့ ဟုရပါမယ်။ အောက်ပါလင့်ခ် မှာ သွားပြောင်း ကြည့်နိုင်ပါတယ်။
Julian Date to Western Date Converter




​မြန်မာ ရက်စွဲ ကနေ ဂျူလီယန် ရက်စွဲ ပြောင်းတဲ့ javascript ကုဒ်ကို အောက်မှာ ဖော်ပြလိုက်ပါတယ်။
  //Myanmar date to Julian date
  //input:  (my : year,
    //mm: month [Tagu=1, Kason=2, Nayon=3, 1st Waso=0, (2nd) Waso=4, Wagaung=5, Tawthalin=6,
    //    Thadingyut=7, Tazaungmon=8, Nadaw=9, Pyatho=10, Tabodwe=11, Tabaung=12 ],
    //mmt: month type [1=hnaung, 0=Oo],
    //mp :moon phase [0=waxing, 1=full moon, 2=waning, 3=new moon],
    //fd: fortnight day [1 to 15])
  //output: (jd -julian day number)
  //dependency: chk_my(my)
  function m2j(my,mm,mmt,mp,fd) {
   var b,c,mml,m1,m2,md,dd;
   yo=chk_my(my);//check year
   b=Math.floor(yo.myt/2); c=(yo.myt==0); //if big watat and common year
   mml=30-mm%2;//month length
   if (mm==3) mml+=b;//adjust if Nayon in big watat
   m1=mp%2; m2=Math.floor(mp/2); md=m1*(15+m2*(mml-15))+(1-m1)*(fd+15*m2);
   mm+=4-Math.floor((mm+15)/16)*4+Math.floor((mm+12)/16);//adjust month
   dd=md+Math.floor(29.544*mm-29.26)-c*Math.floor((mm+11)/16)*30
    +b*Math.floor((mm+12)/16);
   myl=354+(1-c)*30+b;//year length
   dd+=mmt*myl;//adjust day count
   return dd+yo.tg1-1;
  }



၁၀။ ဆွေးနွေးချက်များ

1988 CE ကနေ 2034 CE အတွင်း မှာ ရှိတဲ့ ဝါထပ်နှစ် တွေရဲ့ ဒုတိယ ဝါဆို လပြည့် ချိန်အတိအကျကို၊ အခု ကျွန်တော်တို့ တင်ပြတဲ့ နည်းသုံးပြီး တွက်လို့ရတဲ့ တန်ဖိုးတွေရယ်၊ timeanddate.com မှာ တွေ့နိုင်တဲ့ သက်ဆိုင်ရာ လပြည့်ချိန်တွေရယ် ကို နှိုင်းယှဉ်ပြီး အောက်က ဇယားမှာ ပြထားပါတယ်။ အများသုံး ပြက္ခဒိန်မှာ ဖော်ပြတဲ့ ဝါဆိုလပြည့်နေ့ က လက်ရှိနည်းနဲ့ တွက်လို့ရတဲ့ လပြည့်ချိန် အတိအကျကို ၁၂ နာရီစောပြီးယူထားတာပါ။ ဆိုလိုတာက လက်ရှိမြန်မာ ပြက္ခဒိန်က နေ့လည် ၁၂ နာရီမတိုင်ခင် လပြည့်တယ်ဆိုရင် အရင်နေ့ကို ပဲ လပြည့်နေ့လို့ယူတာပါ။ လပြည့်ချိန်နဲ့ အနီးဆုံး ညသန်းခေါင်ရှိတဲ့နေ့ ကို ယူတယ်လို့ အဓိပ္ပာယ်ရပါတယ်။


မြန်မာနှစ် ၁၃၅၀ ခုမှ ၁၃၉၆ ခု အတွင်းရှိ ဝါထပ်နှစ် များ၏ ဒုတိယ ဝါဆိုလပြည့်ချိန်များ (မြန်မာစံတော်ချိန်)။
မြန်မာနှစ်
လက်ရှိတွက်နည်း
၏လပြည့်ချိန်
ပြက္ခဒိန်ရှိ
လပြည့်နေ့
timeanddate.com မှ
လပြည့်ချိန်
အချိန် နာရီ
ကွာခြားချက်
1350 1988-Jul-29 06:37 1988-Jul-281988-Jul-29 09:55-3
1353 1991-Jul-26 21:47 1991-Jul-261991-Jul-27 00:54-3
1355 1993-Aug-03 04:08 1993-Aug-021993-Aug-02 18:409
1358 1996-Jul-30 19:18 1996-Jul-301996-Jul-30 17:052
1361 1999-Jul-28 10:27 1999-Jul-271999-Jul-28 17:55-7
1363 2001-Aug-04 16:48 2001-Aug-042001-Aug-04 12:264
1366 2004-Aug-01 07:58 2004-Jul-312004-Aug-01 00:357
1369 2007-Jul-29 23:08 2007-Jul-292007-Jul-30 07:18-8
1372 2010-Jul-26 14:18 2010-Jul-262010-Jul-26 08:076
1374 2012-Aug-02 20:39 2012-Aug-022012-Aug-02 09:5811
1377 2015-Jul-31 11:48 2015-Jul-302015-Jul-31 17:13-5
1380 2018-Jul-28 02:58 2018-Jul-272018-Jul-28 02:510
1382 2020-Aug-04 09:19 2020-Aug-032020-Aug-03 22:2911
1385 2023-Aug-02 00:29 2023-Aug-012023-Aug-02 01:02-1
1388 2026-Jul-29 15:39 2026-Jul-292026-Jul-29 21:06-5
1391 2029-Jul-26 06:49 2029-Jul-252029-Jul-25 20:0611
1393 2031-Aug-03 13:10 2031-Aug-032031-Aug-03 08:155
1396 2034-Jul-31 04:19 2034-Jul-302034-Jul-31 12:25-8
ပျမ်းမျှ ကွာခြားချိန် 1.4


တချို့ ပြက္ခဒိန် ပညာရှင်တွေက မြန်မာ ပြက္ခဒိန်မှာ ရက်လွဲလာရင် ဝါထပ်တဲ့ နှစ်ထိစောင့်ပြီးမှ ပြန်ချိန်ညှိတာမို့ မတိကျ၊ မြန်မာ ပြက္ခဒိန် စည်းမျဉ်းကို ပြန်လည်ပြင်ဆင်သင့်တယ် လို့ အကြံပြုကြပါတယ်။ ကမ္ဘာသုံး ပြက္ခဒိန်မှာ လေးနှစ်တစ်ခါ ခန့် ရက်ငင်ပြီး ချိန်ညှိမှု ပြုလုပ်ပါတယ်။ မြန်မာ ပြက္ခဒိန် ဆိုရင် လေးနှစ်တောင် မထားပဲ ၂ နှစ် ဒါမှမဟုတ် ၃ နှစ် တကြိမ် ဝါထပ်နှစ်မှာ လိုအပ်သလို ရက်ကိုချိန်ညှိ တာပါ။ ကျွန်တော့် အမြင်အရ ဆိုရင်တော့ ဒီလောက် တိကျရင် လက်ခံနိုင် လောက်တယ် လို့ ထင်ပါတယ်။ မြန်မာ ပြက္ခဒိန်မှာ ဝါဆိုလမှာ လထပ်၊ ရက်ငင်လိုပါက နယုန်လမှာ ထည့်ပေါင်းရမယ် လို့ ရှင်းလင်းတိကျ လွယ်ကူတဲ့ စည်းမျဉ်းရှိပြီးသားပါ။ လက်ရှိ လပြည့်လကွယ် ရက်တွေရဲ့ တိကျမှုက သာမန်သုံး ဝေါဟာရ ပြက္ခဒိန် တစ်ခု အတွက်ဆိုရင် ပြဿနာ မရှိဘူးလို့ ထင်ပါတယ်။

တဖက်က လည်း မြန်မာ ပြက္ခဒိန် အကြံပေး အဖွဲ့အနေနဲ့ ပြက္ခဒိန်နဲ့ ပတ်သက်တဲ့ ပိုမိုတိကျတဲ့ သတ်မှတ်ချက်တွေ သတ်မှတ်ဖို့ လိုမယ်လို့ထင်ပါတယ်။ မြန်မာ ပြက္ခဒိန်မှာ သာမန်နှစ်၊ ဝါငယ်ထပ်နှစ်၊ ဝါကြီးထပ်နှစ် ဆိုပြီး တိကျလွယ်ကူတဲ့ သတ်မှတ်ချက်တွေ ရှိပါတယ်။ အဲဒီနှစ်တွေမှာ ရှိတဲ့ လတွေနဲ့ ရက်အရေအတွက်တွေ ကိုလည်း အတိအကျ သတ်မှတ်ပြီးသား ဖြစ်ပါတယ်။ ဒါပေမယ့် ဝါထပ်၊ ရက်ငင် အတွက်စည်းကမ်းတွေကိုတော့ ကိန်းဂဏန်းနဲ့ အတိအကျ သတ်မှတ်ထားတာမျိုး မတွေ့တာမို့ မသေချာ၊ မတိကျမှု တွေဖြစ်ပြီး အငြင်းပွားစရာ ဖြစ်တတ်ပါတယ်။

နောက်ပြဿနာတစ်ခုက သုံးတဲ့ ကိန်းဂဏန်းတွေရဲ့ တိကျမှုပါ။ ဥပမာ ရက်ထပ်မထပ်ကို ဆုံးဖြတ်ရမယ့် လကွယ်တဲ့အချိန် အတိအကျက ညသန်းခေါင်ဝန်းကျင်မှာ ဖြစ်နေတယ် ဆိုပါစို့။ ဒါကို ဒဿမတစ်နေရာပဲ ယူတွက်တဲ့ သူက ၀.၅ ရတယ်ဆိုပါစို့။ ဒါကြောင့်သူက ရက်ထပ်တယ်လို့ ယူဆပါမယ်။ အဲ့ဒီအချိန်မှာ ဒဿမနှစ်နေရာ ယူတွက်တဲ့သူကကျတော့ ၀.၄၉ ရတယ်ဆိုပါစို့။ သူက ၁ ရက်ထပ်ပေါင်းစရာမလိုလို့ ရက်မထပ်ဘူးလို့ ယူဆနိုင်ပါတယ်။ အဲလို အခြေအနေမျိုးကြုံလာရင် ဝါကြီးထပ်မလား၊ ဝါငယ်ထပ်မလား အငြင်းအခုန်ဖြစ်တတ်ကြပါတယ်။ ကျွန်တော်တို့ အကြံပြုလိုတာကတော့ အားလုံးတညီတညွတ်ထဲ တူညီတဲ့ ဂဏန်းအမျိုးအစား Double-precision floating-point format (IEEE 754 standard) ကိုသုံးတွက်ကြမယ်ဆိုရင် အဲဒီပြဿနာ နည်းသွားနိုင်ပါတယ်။



၁၁။ နိဂုံး

မြန်မာ ပြက္ခဒိန်အကြောင်း ပြည့်ပြည့်စုံစုံ ပြောမယ်ဆိုရင် တော်တော်ကျယ်ပြန့် ပါတယ်။ အခု တင်ပြတာက တွက်ချက်မှု အပိုင်းပဲ ဖြစ်ပြီး၊ အလွန်ကျဉ်းမြောင်း ပါတယ်။ ဒီနေရာမှာ အဓိက တင်ပြလိုတာက လွယ်ကူ အဆင်ပြေတဲ့ မြန်မာ ပြက္ခဒိန်တွက်ချက်နည်း အသစ် နဲ့ ပရိုဂရမ် ဖန်တီးမှုပဲ ဖြစ်ပြီး၊ တွက်ချက်တဲ့ နေရာမှာ သုံးတဲ့ ကိန်းဂဏန်း တန်ဖိုး တွေနဲ့ ပတ်သက်လို့တော့ ဖော်ပြရုံ ၊ ခန့်မှန်းရုံ ကလွဲပြီး မဆွေးနွေးပါဘူး။ ဘယ်လိုပဲဖြစ်ဖြစ် မြန်မာ ပြက္ခဒိန်နဲ့ ပတ်သက်ပြီး တန်ဖိုးသတ်မှတ်မှု ရှင်းရှင်းလင်းလင်း မရှိ၍ တွက်၍မရ၊ တွက်ရန်ခက်ခဲ လို့ ဆိုကြရာကနေ၊ ရှင်းလင်းတိကျ လွယ်ကူတဲ့ တွက်နည်း တခုရှိဖို့ အားထုတ်မှု တစ်ခုလို့ ဆိုနိုင်ပါတယ်။ တိကျတဲ့ ကိန်းဂဏန်း တန်ဖိုးတွေ သတ်မှတ်ရာမှာလည်း ဒီတွက်နည်းကနေ တဖက်တလမ်း အထောက်အကူ ဖြစ်မယ်လို့ ယုံကြည်ပါတယ်။


ကျေးဇူးတင်လွှာ

မြန်မာ ပြက္ခဒိန်နဲ့ ပတ်သက်ပြီး လိုအပ်တဲ့ အချက်အလက်တွေ ကူညီပေးခဲ့တဲ့ သူငယ်ချင်း အောင်စိုးမိုး နဲ့ ထွန်းထွန်းအေး တို့ကို ကျေးဇူးတင်တဲ့ အကြောင်းပြောလိုပါတယ်။ မြန်မာ ပြက္ခဒိန်နဲ့ ပတ်သက်တဲ့ ဗဟုသုတ၊ အချက်အလက်တွေ ပြောပေး၊ ပို့ပေးခဲ့တဲ့ ကိုရဲလင်းကျော် နဲ့ ဦးအောင်သူ တို့ကို လည်း ကျေးဇူးတင်ပါတယ်။ စိုးမိုးနိုင် နှစ်တစ်ရာ ပြက္ခဒိန် နဲ့ ဦးအုန်းကြိုင် မြန်မာ့ ပက္ခဒိန် သုတေသန ကျမ်း စာအုပ်များ ကို လက်ဆောင်ပေး ခဲ့တဲ့ ကို အေးငြိမ်း နဲ့ ဆရာ တင်နိုင်တိုးရဲ့ မြန်မာ အင်္ဂလိပ် ပြက္ခဒိန် စာအုပ်ပို့ပေးခဲ့တဲ့ ကိုဝဏ္ဏကို တို့ကိုလည်း ကျေးဇူးတင် တဲ့ အကြောင်းပြောလိုပါတယ်။ အခြား လိုအပ်တာများကို ကူညီပေးခဲ့တဲ့ မိတ်ဆွေ၊ သူငယ်ချင်းများ အားလုံးကို လည်းကျေးဇူးတင်ပါတယ်။



အကိုးအကားများ


[Clancey, 1906] Clancey, J. C., "The Burmese calendar," The Observatory, Vol. 29, p. 54-59,1906. Available online.

[Chatterjee, 1998] SK Chatterjee, "Traditional Calendar of Myanmar (Burma)," Indian Journal of History of Science, 1998. Available online.

[Dershowitz, 2008] Nachum Dershowitz, Edward M. Reingold, "Calendrical Calculations," 3rd Edition, Cambridge University Press, 2008.

[Irwin, 1901] Irwin, A. M. B., "The Burmese Calendar," London: S. Low, Marston, 1901. Available online.

[Irwin, 1909] Irwin, A. M. B., "The Burmese & Arakanese calendars,"Rangoon : Printed at the Hanthawaddy printing works, 1909. Available online.

[Jefferys, 1998] Bill Jefferys, "Julian Day Calculations," http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html, 1998.

[Ko, 2009] ဝဏ္ဏကို၊ "Myanmar Calendar Program," http://myanmarcalendar.sourceforge.net/ ၊ ၂၀၀၉။

[Kyaing, 1964] အုန်းကြိုင်၊ မြန်မာ့ ပက္ခဒိန် သုတေသနကျမ်း၊ စာပေဗိမာန်၊ ၁၉၆၄။

[Myers, 2011] Paul Myers, "Julian Day Numbers," http://pmyers.pcug.org.au/General/JulianDates.htm, 2011.

[Nyein, 2012] အေးငြိမ်း၊ မြန်မာပြက္ခဒိန်တွက်နည်း၊ http://shwenyein.blogspot.sg/2012/07/blog-post_1862.html, 2012.

[Nyein, 2014] အေးငြိမ်း (လေးမျက်နှာ)၊ မြန်မာပြက္ခဒိန်၊ ပထမအကြိမ်၊ ရွက်စိမ်းစာပေ၊ ရန်ကုန်၊ ၂၀၁၄။

[Thadiya, 2010] ဘဒ္ဒန္တသဒ္ဓိယ (မြန်မာနိုင်ငံပြက္ခဒိန်အကြံပေးအဖွဲ့၊ ဥက္ကဋ္ဌ)၊ ပြက္ခဒိန်အကြောင်း သိကောင်းစရာ နှင့် ကာဗျမိဿက၊ ဗုဒ္ဓစာပေအဖွဲ့၊ ၂၀၁၀။

[Toe, 1999] တင်နိုင်တိုး၊ မြန်မာ - အင်္ဂလိပ် ပြက္ခဒိန်၊ လင်းဆက်စာပေ၊ ၁၉၉၉။

[UTSA, 2011] The University of Texas at San Antonio, "Explanation of Julian Day Number Calculation," http://www.cs.utsa.edu/~cs1063/projects/Spring2011/Project1/jdn-explanation.html, 2011.

[Wikipedia] "Burmese Calendar," http://en.wikipedia.org/wiki/Burmese_calendar



Related links:
Myanmar Astrological Calendar Days
Myanmar Calendar : mc1500
Myanmar Calendar : mc1500 Source Code on GitHub

2 comments:

  1. I am a buddhist monk of Myanmar. As for a monk, full moon days and new moon days of every month is very essential for us. We call them uposatha days that you may know. And then there is no android app that can alert when the full and new moon day comes according to our myanmar calender. Do you have any formula to calculate these full and new moon days for each month? Developing an andriod app will be more appreciated. Hoping for your sooner reply. Pls mail me to sumana@parahita.org

    ReplyDelete
  2. Thanks for the comment. Full moon days and new moon days can be calculated in advance (at least for a few months). I am sorry that I am not an android app developer. One of my friends develops Myanmar calendar android app and why don't you leave some comments at the following page.... https://www.facebook.com/FelixMyanmar

    ReplyDelete