From 2b398855f700aeb9767c97ab442a3f7374924a12 Mon Sep 17 00:00:00 2001 From: ArMonarch <131849217+ArMonarch@users.noreply.github.com> Date: Tue, 28 Nov 2023 15:24:50 +0545 Subject: [PATCH 1/3] Create README.md for removal of README.adoc --- README.md | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..baef69b --- /dev/null +++ b/README.md @@ -0,0 +1,133 @@ +# README + +## Build Tracker +[![Java CI](https://github.com/bahadurbaniya/Date-Converter-Bikram-Sambat-to-English-Date/actions/workflows/maven.yml/badge.svg)](https://github.com/bahadurbaniya/Date-Converter-Bikram-Sambat-to-English-Date/actions/workflows/maven.yml) + +## 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 + +```bash +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 +```bash +$ mvn test +``` +Run main class ```np.com.bahadur.converter.date.nepali.DateConverterTestBed.main``` with command below +```bash +$ mvn exec:java +``` + +## Usage Instruction + +1. > JDK_Version >= 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 + +3. Now code could be used as shown below on Sample Code to use library + + +### Use JAR deployed in GitHub Packages + +1. AR is also hosted on https://github.com/bahadurbaniya/Date-Converter-Bikram-Sambat-to-English-Date/packages/ Follow instructions from here and 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) + +## Sample Code to use library + +Write following code in project that wants to use jar imported/generated. + +1. Use installed JAR in maven .m2 folder as a dependency, adding dependency below + +```bash + + np.com.bahadur.converter.date.nepali + NepaliEnglishDateConverter + 0.0.1 + +``` + +### AD to BS conversion sample +```bash +DateConverter dc = new DateConverter(); +System.out.println(dc.convertAdToBs("20-06-1982")); +``` + + +### BS to AD conversion sample + +```bash +DateConverter dc = new DateConverter(); +System.out.println(dc.convertBsToAd("06-03-2038")); +``` From ed365d314005086bd400b92f9b5909cab5760e0d Mon Sep 17 00:00:00 2001 From: ArMonarch <131849217+ArMonarch@users.noreply.github.com> Date: Tue, 28 Nov 2023 15:25:39 +0545 Subject: [PATCH 2/3] Rename README.adoc to README.adoc_old --- README.adoc => README.adoc_old | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.adoc => README.adoc_old (100%) diff --git a/README.adoc b/README.adoc_old similarity index 100% rename from README.adoc rename to README.adoc_old From 708867137a40cc9752f0ce07d4aa5e26fda9f8ac Mon Sep 17 00:00:00 2001 From: ArMonarch <131849217+ArMonarch@users.noreply.github.com> Date: Tue, 28 Nov 2023 15:28:43 +0545 Subject: [PATCH 3/3] Update maven.yml to compile on java-version 11,16,17 --- .github/workflows/maven.yml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 91106d3..c38391c 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,17 +1,27 @@ name: Java CI -on: [push] +on: + push: + branches: + - master + - main jobs: build: - - runs-on: ubuntu-latest + runs-on: ubuntu-latest + strategy: + matrix: + java-version: ['11','16','17'] steps: - - uses: actions/checkout@v1 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v2 with: - java-version: 1.8 + distribution: 'temurin' + java-version: ${{matrix.java-version}} + - name: Build with Maven run: mvn -B package --file pom.xml