|
|
Main /
HomePagepackage shankaruprety; import java.util.Calendar; import java.util.GregorianCalendar; public class NepaliDate extends BaseDate { private static int yearMonthSpanLookupTable[][] = {
{ 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
{ 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31 },
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 36:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 37:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31 },
// 38:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 39:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 40:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 41:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 42:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 43:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 44:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 45:
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
// 46:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 47:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 48:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 49:
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
// 50:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 51:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 52:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 53:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 54:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 55:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 56:
{ 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 57:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 58:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 59:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 60:
{ 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// /61:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 62:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 63:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 64:
{ 31, 31, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31 },
// 65:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 66:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 67:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 68:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 69:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 70:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 71:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 72:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 73:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 74:
{ 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 75:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 76:
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
// 77:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 78:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 79:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 80:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 81:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 82:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 83:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 84:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 85:
{ 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30 },
// 86:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 87:
{ 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 88:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 89:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 90:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 91:
{ 31, 31, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31 },
// 92:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 93:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 94:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 95:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 96:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 97:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// / 98:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 99:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 100:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 101:
{ 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 102:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 103:
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
// 104:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 105:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 106:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 107:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 108:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 109:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 110:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 111:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 112:
{ 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30 },
// 113:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 114:
{ 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 115:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 116:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 117:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 118:
{ 31, 31, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31 },
// 119:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 120:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 121:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 122:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 123:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 124:
{ 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 125:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 126:
{ 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30 },
// 127:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 128:
{ 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30 },
// 129:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31 },
// 130:
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
// 131:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 132:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 133:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 134:
{ 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30 },
// 135:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
// 136:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30 },
// 137:
{ 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31 },
// 138:
{ 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30 },
};
//private int nepReferenceYear = 2059;
private int nepReferenceYearIndex = 110;
private int cycleYear = 139;
public String[] months={
"Baisak",
"Jesth",
"Asad",
"Srawan",
"Bhadra",
"Ashoj",
"Kartik",
"Mangsir",
"Paush",
"Magh",
"Falgun",
"Chaitra",
};
/**
* It returns the maximum number of days in given month of give year of date instance
* @return maximum number of days in current month of current year
*/
public int getMaximumDaysInMonth(){
return yearMonthSpanLookupTable[this.getYearIndex()][this.month - 1];
}
/**
* Returns the index for current year to up used in the lookup table
*/
private int getYearIndex() {
return ((this.year - nepReferenceYearIndex)) % cycleYear;
}
public NepaliDate(int year, int month, int day) {
super(year,month,day);
}
public NepaliDate() {
super(2059, 1, 1);
}
public NepaliDate(NepaliDate date) {
super(date.year,date.month,date.day);
}
/** the date that is used by this Class as the Reference Date
* @return <code>BaseDate</code> Used For Reference
*/
public BaseDate getReferenceDate() {
NepaliDate referenceDate = new NepaliDate(2059, 1, 1);
return referenceDate;
}
/**
* provide the dayOfWeek
* of the reference date they are using. The day of the week used
* as reference is Sunday. We return 0
* @return
*/
public int referenceDayOfWeek(){
return 0;
}
public String toString() {
return this.getClass().getName()+" : "+this.year + "/" + this.month + "/" + this.day+" "+this.getDayOfWeekString();
}
public static void main(String[] args) {
NepaliDate test = new NepaliDate(2062, 12, 25);
System.out.println(test);
// Date d = new Date();
GregorianCalendar engCal = new GregorianCalendar();
engCal.clear();
engCal.set(1943, Calendar.APRIL, 14);
// engCal.setTime(d);
for (int i = 1996; i < 2010; i++) {
engCal.set(i, 0, 1);
System.out.println(i + " " + engCal.getTime());
for (int j = 0; j < 12; j++) {
engCal.set(i, j, 1);
System.out.print("\t" + engCal.getActualMaximum(Calendar.DATE));
}
System.out.println();
}
/*
engCal.setTime(d);
engCal = getEnglishReferenceDate();
test = new NepaliDate(2058, 12, 29);
System.out.println("Todays Nepali Date is "
+ NepaliDate.getNepaliDate(engCal).getDayOfWeekString() + "\n"
+ engCal.getTime());
System.out.println("Test Day is " + test.getDayOfWeekString() + "\n");
// /* public static final String daysOfWeek[] = { "आईतवार", "सोमबार ", "मंगलबार ", "बुधवार ", "बिहीवार", "शुक्रबार ", " शनीबार ",
}; */
public static final String daysOfWeek[] = { "आईत", "सोम ", "मंगल ",
"बुध ", "बिही", "शुक्र ", " शनी ",
};
public static final String daysInNepali[] = {"०", "१", "२", "३",
"४", "५", "६", " ७", "८", "९"
};
public String getDayInNepali(){
int tempDate=day;
String dayNepali="";
while(tempDate>0){
int firstDigit=tempDate%10;
dayNepali=daysInNepali[firstDigit]+dayNepali;
tempDate=tempDate/10;
}
return dayNepali;
}
} |