Recent Changes - Search:

edit SideBar

HomePage

package 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;

	}

}

Edit - History - Print - Recent Changes - Search
Page last modified on August 18, 2010, at 02:24 AM