Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:NepaliDateConverter
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {}; --This function converts nepali date to english date -- See MOS for date format(Wikipedia:Manual of Style/Dates and numbers) --The output can be checked by using following code in article page/template page --{{#invoke:moduleForNepaliDateConverter|returnEnglishDate|nepaiYear=1984|nepaliMonth=6|nepaliDay=21}}-->Retruns full date --{{#invoke:moduleForNepaliDateConverter|returnEnglishDate|nepaiYear=1984}}-->Retruns years e.g. 2007-2008 function p.returnEnglishDate(frame) -- add a function to p local n_year = tonumber(frame.args.nepaliYear) local n_month = tonumber(frame.args.nepaliMonth) local n_day = tonumber(frame.args.nepaliDay) --define variables to hold converted date local e_date -- when nepali day or month is missing, retrun the year only -- or when date is out of range(2000-2089 BS), return year only -- or when there are error in days or months, return year only local e_year1 local e_year2 if (n_month== nil or n_month>12 or n_day==nil or n_day>32 or n_year < 2000 or n_year > 2089) then e_year1=n_year-57 e_year2=n_year-56 e_date=n_year .. ' [[Bikram Sambat|BS]] ('.. e_year1 .. '-' .. e_year2 .. ')' return e_date end -- when both month and day is given, and year is in range and return compelte date --- calculate e_date=p.nep_to_eng(n_year, n_month, n_day) return e_date end function p.nep_to_eng(yy, mm, dd) local def_nyy = 2000 local def_nmm = 1 local def_ndd = 1 -- equivalent nepali dates -- initializate local total_nDays = 0 local i = 0 local k = 1 local numDay = 0 -- array for nepali calendar local bs={} --declear array to hold bikram sambat calendar and fill the array bs[1]={2000, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[2]={2001, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[3]={2002, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[4]={2003, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[5]={2004, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[6]={2005, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[7]={2006, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[8]={2007, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[9]={2008, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31} bs[10]={2009, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[11]={2010, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[12]={2011, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[13]={2012, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30} bs[14]={2013, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[15]={2014, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[16]={2015, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[17]={2016, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30} bs[18]={2017, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[19]={2018, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[20]={2019, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[21]={2020, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30} bs[22]={2021, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[23]={2022, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30} bs[24]={2023, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[25]={2024, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30} bs[26]={2025, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[27]={2026, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[28]={2027, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[29]={2028, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[30]={2029, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30} bs[31]={2030, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[32]={2031, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[33]={2032, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[34]={2033, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[35]={2034, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[36]={2035, 30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31} bs[37]={2036, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[38]={2037, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[39]={2038, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[40]={2039, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30} bs[41]={2040, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[42]={2041, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[43]={2042, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[44]={2043, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30} bs[45]={2044, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[46]={2045, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[47]={2046, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[48]={2047, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30} bs[49]={2048, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[50]={2049, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30} bs[51]={2050, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[52]={2051, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30} bs[53]={2052, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[54]={2053, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30} bs[55]={2054, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[56]={2055, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[57]={2056, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30} bs[58]={2057, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[59]={2058, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[60]={2059, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[61]={2060, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[62]={2061, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[63]={2062, 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31} bs[64]={2063, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[65]={2064, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[66]={2065, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[67]={2066, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31} bs[68]={2067, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[69]={2068, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[70]={2069, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[71]={2070, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30} bs[72]={2071, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[73]={2072, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30} bs[74]={2073, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31} bs[75]={2074, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30} bs[76]={2075, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[77]={2076, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30} bs[78]={2077, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31} bs[79]={2078, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30} bs[80]={2079, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30} bs[81]={2080, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30} bs[82]={2081, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30} bs[83]={2082, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30} bs[84]={2083, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30} bs[85]={2084, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30} bs[86]={2085, 31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30} bs[87]={2086, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30} bs[88]={2087, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30} bs[89]={2088, 30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30} bs[90]={2089, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30} bs[91]={2090, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30} -- if additional calander becomes available, please put here --count total days for upto given year for i = 0, yy - def_nyy-1 do for j = 2, 13 do total_nDays = total_nDays + bs[k][j] end k = k + 1 end --count and add days for the months for j = 2, mm - 1+1 do total_nDays = total_nDays + bs[k][j] end --count and add total days within the month total_nDays = total_nDays + dd aaa= total_nDays --======================================= ---calculation of equivalent english date-- --======================================== local def_eyy = 1943 local def_emm = 4 local def_edd = 14 - 1 -- 1 Baisakh 2000 BS=14 April , 1943 AD -- array for english calendar local month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} --normal english year local lmonth = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} --leap english year local a = 0 -- to hold days of a month during calculation local total_eDays = def_edd local day = 4 - 1 local m = def_emm local y = def_eyy while (total_nDays ~= 0) do if (p.is_leap_year(y)) then a = lmonth[m] else a = month[m] end total_eDays = total_eDays + 1 day = day + 1 if (total_eDays > a) then m = m + 1 total_eDays = 1 if (m > 12) then y = y + 1 m = 1 end end if (day > 7) then day = 1 end total_nDays = total_nDays - 1 end numDay = day local monthNameEnglish={'January','February','March','April','May','June','July','August','September','October','November','December'} local monthNameNepali={'Baisakh','Jesth','Ashad','Shrawan','Bhadra','Ashwin','Kartik','Mangsir','Poush','Magh','Falgun','Chaitra'} returnVal=total_eDays..' '..monthNameEnglish[m]..' '..y..' ('.. dd ..' '.. monthNameNepali[mm]..' '.. yy..' [[Bikram Sambat|BS]])' return returnVal end function p.is_leap_year(year) --this function checks if the given year is a leap year or not local returnVal local a = tonumber(year) if math.fmod(a,100) == 0 then if math.fmod(a,400) == 0 then returnVal = true else returnVal = false end else if math.fmod(a,4)==0 then returnVal = true else returnVal = false end end return returnVal end return p --All modules end by returning the variable containing their functions to Wikipedia.
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Sandbox other
(
edit
)
Template:Tl
(
edit
)
Module:NepaliDateConverter/doc
(
edit
)
Module:String
(
edit
)