You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Yalu <ya...@vajrainteractive.com> on 2016/09/20 12:43:53 UTC

Re: [Mifos-developer] Date/Time/Calendar Architecture with regards to Vikram Samvat

I apologize ahead for this long ranty post, and thank you for bearing with me by spending your precious time.

It is unfortunate for Nepal that joda-time does not already have support for Vikram Samvat let alone any other hindu calendar system. But then it may be the case that Nepal perhaps needs to adopt a more algorithmically straightforward calendar system for official purposes.

All this maybe out of the scope of the initiative :( ?

I have been desperately researching on how I can perhaps add support and I have found some promising leads(at the moment these are way over my head) that might lead to an answer:

Books/Research Paper:
	*  Calendrical Calculations (https://www.amazon.com/Calendrical-Calculations-Nachum-Dershowitz/dp/0521702380) (Provides Common Lisp Code for Saka Samvat) 
	*  Astronomical Algorithms (https://www.amazon.com/Astronomical-Algorithms-Jean-Meeus/dp/0943396352/ref=sr_1_1?s=books&ie=UTF8&qid=1474372101&sr=1-1&keywords=astronomical+algorithms)  
	* Indian Calendrical Calculations (http://web.archive.org/web/20160417074512/http://emr.cs.iit.edu/~reingold/hindu-paper.pdf (http://web.archive.org/web/20160417074512/http://emr.cs.iit.edu/~reingold/hindu-paper.pdf)) (Common Lisp, same authors as #1) 
There are also a bunch of github repositories on the subject with different approaches. 
	*  https://github.com/espinielli/pycalcal (https://github.com/espinielli/pycalcal) - Python Port of "Calendrical Calculations" Common Lisp Code. has Saka Samvat calculations. 
	*  https://github.com/dzucconi/calendrical (https://github.com/dzucconi/calendrical) - Javascript (Saka Samvat) 
	*  https://github.com/kbwood/calendars (https://github.com/kbwood/calendars) - jQuery - has Nepali Calendar based on data of precalculated dates (I'd say that's a inelegant but practical hack that may pontentially bite the users in the *** like Y2K). This approach is what has been used in local software, perhaps even in proprietary Government(Tax, Internal Revenue) software. 

Note: My preliminary knowledge indicates that Saka Samvat is similar to Vikram Samvat with maybe only few differences. Vikram Samvat is more usually spelled as Bikram Sambat(BS) in Nepal.

My thinking is that it may suffice to have application/UI level support for Bikram Sambat. What I mean by that is that we keep the storage and manipulation of dates in AD as it is. Date/Time is stored as Unix Time isn't it anyway? We display and do all UI level manipulation in BS based on Calendar code we derive from above resources. Actually there exists in github, a Java and an AngularJS library too for jQuery lib above(#3 - hack) kind of approach .

There might only be a need to do a little bit of architectural change required in the core in the definition of months and fiscal year. If definition of month and fiscal year could be customized(if it is not already customizable - I know fiscal year is customizable), that maybe all we need, besides the UI widgets. If that is the case then Aliens in another galaxy could theoretically use MifosX? :D

Thoughts?

I am also thinking of joining or igniting a movement for government to base official work be done in terms of AD like most of the world does including our neighbor India. As far as I have gone in finding the solution to perceived problem, I still do not know the government's actual position on AD usage so I'll be doing that soon first. It certainly is the case though that doing official work in BS makes things easier with government in Nepal.

Thanks Much!

Yalu

September 20, 2016 4:03 PM, "Ed Cable"  wrote:

 Hi Yalu,
The Fineract developer is the right place so thanks for starting this discussion. Keith Woodlock, are you able to respond more about the calendar library that was chosen - it think it was Joda right? It looks like that only supports 8 calendars - http://www.joda.org/joda-time/cal.html (http://www.joda.org/joda-time/cal.html) - but Vikram Samvat isn't one of them. 
Ed
On Mon, Sep 19, 2016 at 8:54 PM, Yalu  wrote:

 Dear Dev Community,

This is my first post to this list and I apologize if the content of this message is not appropriate.

I am from Nepal and here the official Calendar System in widespread use is still exclusively a Hindu calendar system called Vikram Samvat. I am trying to get Mifos to be usable in Nepal and this is one of the major hurdle that is impeding adoption.

I am trying to determine what kind of Calendar Date/Time architecture/module Mifos X has so as to localize this aspect of the software faithfully and seamlessly; Whether the module is pluggable so that we could just plug in Vikram Samvat based calendar system(if it exists) or any other Calendar system, and we would be good to go.

Determining or making the architecture pluggable and having a slot to accommodate different kinds of Calendar/Date/Time system may only be one of a few related problems in this problem set. On the other side, I am not even sure if Nepal has a reliable computational Calendar library to plugin for Vikram Samvat.

I know there exists an approach that some local developers have been using to address Calendar solutions for Vikram Samvat. From what I know these systems are made not with pure algorithmic approach(thus scalable into the future) but by using pre-calculated data set of dates. These set of dates range between arbitrary(?) past and future dates. The authority that publishes the pre calculated dates and the legitimacy of their calculations may also be questionable. I have done some research on this and I will share more of my findings soon.

I would really appreciate any help localizing Mifos X in this manner. It would be a huge win for Nepali adoption of Mifos X. I will assist in any ways I can, so please ask questions, share your insights and discuss.

Thank You immensely for all your hard work. You all are all simply amazing.

Regards,

Yalu  
--
 Ed Cable
Director of Community Programs, Mifos Initiative 
 edcable@mifos.org (mailto:edcable@mifos.org) | Skype: edcable | Mobile: +1.484.477.8649
Collectively Creating a World of 3 Billion Maries | http://mifos.org (http://mifos.org)   (http://facebook.com/mifos)