Java J2ME JSP J2EE Servlet Android

A Java class to get Bangla Calendar from Gregorian Calendar : Java

Here is a class that can be used as Gregorian to Bangla Calendar conversion..



import java.util.Calendar;

public class BanglaCalendar {
public static int BAISAKH = 1;
public static int JAISTHA = 2;
public static int ASARH = 3;
public static int SRABAN = 4;
public static int VADRA = 5;
public static int ASHWIN = 6;
public static int KARTIK = 7;
public static int AGRAHAYAN = 8;
public static int POUSH = 9;
public static int MAGHH = 10;
public static int FALGUN = 11;
public static int CHAITRA = 12;

Calendar calendar = null;
int day;
int month;
int year;
public BanglaCalendar(Calendar cal){
this.calendar = cal;
process();
}

public int getDay(){
return day;
}
public int getMonth(){
return month;
}
public int getYear(){
return year;
}
private void process(){
int ddd = calendar.get(Calendar.DAY_OF_YEAR);
year = calendar.get(Calendar.YEAR);
if(isLeapYear(year)){
year = year-593;
if(ddd<115)
year--;
if(ddd>=115 && ddd<=145){
month = BAISAKH;
day = ddd - 114;
}
else if(ddd>=146 && ddd<=176){
month = JAISTHA;
day = ddd - 145;
}
else if(ddd>=177 && ddd<=207){
month = ASARH;
day = ddd - 176;
}
else if(ddd>=208 && ddd<=238){
month = SRABAN;
day = ddd - 207;
}
else if(ddd>=239 && ddd<=269){
month = VADRA;
day = ddd - 238;
}
else if(ddd>=270 && ddd<=299){
month = ASHWIN;
day = ddd - 269;
}
else if(ddd>=300 && ddd<=329){
month = KARTIK;
day = ddd - 299;
}
else if(ddd>=330 && ddd<=359){
month = AGRAHAYAN;
day = ddd - 329;
}
else if(ddd>=360 && ddd<=23){
month = POUSH;
day = ddd - 359;
}
else if(ddd>=24 && ddd<=53){
month = MAGHH;
day = ddd - 23;
}
else if(ddd>=54 && ddd<=84){
month = FALGUN;
day = ddd - 53;
}
else if(ddd>=85 && ddd<=114){
month = CHAITRA;
day = ddd - 84;
}
}else{
year = year-593;
if(ddd<114)
year--;
if(ddd>=114 && ddd<=144){
month = BAISAKH;
day = ddd - 113;
}
else if(ddd>=145 && ddd<=175){
month = JAISTHA;
day = ddd - 144;
}
else if(ddd>=176 && ddd<=206){
month = ASARH;
day = ddd - 175;
}
else if(ddd>=207 && ddd<=237){
month = SRABAN;
day = ddd - 206;
}
else if(ddd>=238 && ddd<=268){
month = VADRA;
day = ddd - 237;
}
else if(ddd>=269 && ddd<=298){
month = ASHWIN;
day = ddd - 268;
}
else if(ddd>=299 && ddd<=328){
month = KARTIK;
day = ddd - 298;
}
else if(ddd>=329 && ddd<=358){
month = AGRAHAYAN;
day = ddd - 328;
}
else if(ddd>=359 && ddd<=23){
month = POUSH;
day = ddd - 358;
}
else if(ddd>=24 && ddd<=53){
month = MAGHH;
day = ddd - 24;
}
else if(ddd>=54 && ddd<=83){
month = FALGUN;
day = ddd - 53;
}
else if(ddd>=84 && ddd<=113){
month = CHAITRA;
day = ddd - 83;
}
}
}
public static void main(String args[]){
BanglaCalendar bc = new BanglaCalendar(Calendar.getInstance());
System.out.println(bc.getDay());
System.out.println(bc.getMonth());
System.out.println(bc.getYear());
}

/**
* Is the given year a year year in the SPAWAR Calendar?
* @param yyyy the year
* @return true if the year is a leap year
*/
public static final boolean isLeapYear ( int yyyy )
{
if ( yyyy < 0 ) return( yyyy + 1 ) % 4 == 0;
if ( yyyy < 1582 ) return yyyy % 4 == 0;
if ( yyyy % 4 != 0 ) return false;
if ( yyyy % 100 != 0 ) return true;
if ( yyyy % 400 != 0 ) return false;
if ( yyyy % 3200 != 0 ) return true;
return false;
}

}