-
Notifications
You must be signed in to change notification settings - Fork 16
/
README.adoc_old
142 lines (106 loc) · 6.36 KB
/
README.adoc_old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
= README
== Build Tracker
image:https://travis-ci.org/bahadurbaniya/Date-Converter-Bikram-Sambat-to-English-Date.svg?branch=master[Travis-ci Build Status]
== Overview
Converts Nepali Date (Bikram Sambat (BS)) provided to English equivalent date(AD)/Gregorian Date.
Nepali calendar does not have constant month lengths like the English calendar. The number of days in a month keeps changing, so we cannot create an algorithm to find the number of days in a particular Nepali month and year. I hope that a Nepali Calendar maker can create an infinite calendar for the Nepali calendar. For now, we have to use a lookup table when converting Nepali dates to English dates.
We have to find mapping of first day of Bikram Sambat (BS)'s year to equivalent Gregorian date.
Do this for every Nepali year you want to convert e.g. 2001 Baisakh 1 "13-Apr-1944" ……… ….
2068 Baisakh 1 "14-Apr-2011"
To know all the number of days in each month Following URLs can be helpful.
* http://nepalicalendar.rat32.com/
* http://www.nepalicalendar.com/
* http://nepalipatro.com.np/
* http://www.ashesh.com.np/nepali-calendar
Steps involved in BS to AD conversion:
1. If we need to convert 2001 Ashar 6, find number of days elapsed since start of Bikram Sambat year(2001 Baisakh 1).
2. Ashar is 3rd month(Baisakh, Jestha, Ashar) of BS as depicted in table.
So number of days passed is 31+31+6-1 = 67(number of days in Baisakh+number of days in Jestha+month_of_day-1).
Where month_of_day is day of month which needs conversion. 1 is subtracted as Baisakh 1 has already included.
3. Add number of days elapsed to Gregorian equivalent date (13 April 1944) eg (13 April 1944)+67=19 June 1944. Which is correctly converted Gregorian date of 2001 Ashar 6.
About Bikram Sambat:
* https://en.wikipedia.org/wiki/Bikram_Sambat
== Questions
=== Why Nepali year does not have 365 days in years listed below?
Why Nepali year 1974 has total days 364 instead of 365 days?
Why Nepali year 1976 has total days 366 instead of 365 days?
Why Nepali year 1984 has total days 366 instead of 365 days?
Why Nepali year 1988 has total days 366 instead of 365 days?
Why Nepali year 1990 has total days 364 instead of 365 days?
Why Nepali year 2003 has total days 366 instead of 365 days?
Why Nepali year 2007 has total days 366 instead of 365 days?
Why Nepali year 2011 has total days 366 instead of 365 days?
Why Nepali year 2015 has total days 366 instead of 365 days?
Why Nepali year 2019 has total days 366 instead of 365 days?
Why Nepali year 2023 has total days 366 instead of 365 days?
Why Nepali year 2026 has total days 366 instead of 365 days?
Why Nepali year 2030 has total days 366 instead of 365 days?
Why Nepali year 2034 has total days 366 instead of 365 days?
Why Nepali year 2038 has total days 366 instead of 365 days?
Why Nepali year 2042 has total days 366 instead of 365 days?
Why Nepali year 2046 has total days 366 instead of 365 days?
Why Nepali year 2050 has total days 366 instead of 365 days?
Why Nepali year 2054 has total days 366 instead of 365 days?
Why Nepali year 2057 has total days 366 instead of 365 days?
Why Nepali year 2061 has total days 366 instead of 365 days?
Why Nepali year 2065 has total days 366 instead of 365 days?
Why Nepali year 2069 has total days 366 instead of 365 days?
Why Nepali year 2073 has total days 366 instead of 365 days?
Why Nepali year 2077 has total days 366 instead of 365 days?
Why Nepali year 2081 has total days 366 instead of 365 days?
Why Nepali year 2082 has total days 366 instead of 365 days?
Why Nepali year 2085 has total days 367 instead of 365 days?
Why Nepali year 2086 has total days 366 instead of 365 days?
Why Nepali year 2087 has total days 366 instead of 365 days?
Why Nepali year 2089 has total days 366 instead of 365 days?
Why Nepali year 2090 has total days 366 instead of 365 days?
Why Nepali year 2091 has total days 366 instead of 365 days?
Why Nepali year 2092 has total days 366 instead of 365 days?
Why Nepali year 2093 has total days 366 instead of 365 days?
Why Nepali year 2095 has total days 366 instead of 365 days?
Why Nepali year 2096 has total days 364 instead of 365 days?
Why Nepali year 2097 has total days 366 instead of 365 days?
Why Nepali year 2098 has total days 366 instead of 365 days?
== Technical
This is Maven project.
Import project in your favourite IDE using pom.xml.
== Run instructions
Run only tests
----
mvn test
----
Run main class `np.com.bahadur.converter.date.nepali.DateConverterTestBed.main` with command below
----
mvn exec:java
----
== Usage instructions
1. >= JDK 1.8
=== Manual Installation
1. Clone https://github.com/bahadurbaniya/Date-Converter-Bikram-Sambat-to-English-Date/
2. Run command below to install jar locally in maven repository `mvn clean install`
[start=3]
. Now code could be used as shown below on <<Sample Code to use library>>
=== Use JAR deployed in GitHub Packages
1. JAR is also hosted on https://github.com/bahadurbaniya/Date-Converter-Bikram-Sambat-to-English-Date/packages/
Follow instructions from
https://help.github.com/en/github/managing-packages-with-github-package-registry/configuring-apache-maven-for-use-with-github-package-registry#authenticating-to-github-package-registry[here]
and https://help.github.com/en/github/managing-packages-with-github-package-registry/configuring-apache-maven-for-use-with-github-package-registry#installing-a-package[here]
to use GitHub Packages
2. After following step 1, JAR should be in "%USERPROFILE%\.m2\repository\np\com\bahadur\converter\date\nepali\NepaliEnglishDateConverter\0.0.1\NepaliEnglishDateConverter-0.0.1.jar" (Windows) "~\.m2\repository\np\com\bahadur\converter\date\nepali\NepaliEnglishDateConverter\0.0.1\NepaliEnglishDateConverter-0.0.1.jar" (Linux)
3. Now code could be used as shown below on <<Sample Code to use library>>
== Sample Code to use library
Write following code in project that wants to use jar imported/generated
. Use installed JAR in maven .m2 folder as a dependency, adding dependency below
----
<dependency>
<groupId>np.com.bahadur.converter.date.nepali</groupId>
<artifactId>NepaliEnglishDateConverter</artifactId>
<version>0.0.1</version>
</dependency>
----
=== AD to BS conversion sample
DateConverter dc = new DateConverter();
System.out.println(dc.convertAdToBs("20-06-1982"));
=== BS to AD conversion sample
DateConverter dc = new DateConverter();
System.out.println(dc.convertBsToAd("06-03-2038"));