package com.paydowncalc.app; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import android.util.Log; public class ExtraPayment { public Date start; public BigDecimal amount; public String type; ExtraPayment() { start= new Date(); amount= new BigDecimal((int) 0); type = ""; } public ExtraPayment(String value, String startmonth, int startyear, String frequency) { amount = new BigDecimal(value); start = stringToDate(startmonth, Integer.toString(startyear)); type = frequency; } public void nextDate() { String [] extraTypes = PayDownCalcMain.getExtraTypes(); Calendar cal = Calendar.getInstance(); // creates calendar cal.setTime(start); // sets calendar time/date if(type.equalsIgnoreCase(extraTypes[0])) // monthly { cal.add(Calendar.MONTH, 1); } if(type.equalsIgnoreCase(extraTypes[1])) //annual { cal.add(Calendar.YEAR, 1); } if(type.equalsIgnoreCase(extraTypes[2])) // one-time { cal.add(Calendar.YEAR, 1000); //disable } start = cal.getTime(); } public Date getTime() { Calendar cal = Calendar.getInstance(); // creates calendar cal.setTime(start); // sets calendar time/date cal.add(Calendar.DAY_OF_MONTH, -5); // making it before first day return cal.getTime(); } public static Date stringToDate(String month, String year) { return ExtraPayment.stringToDate(month + " " + year); } public static Date stringToDate(String string) { Log.v("extra", "Parsing string "+ string); SimpleDateFormat sdf = new SimpleDateFormat("MMMM yyyy", Locale.US); Date date; try { date = sdf.parse(string); Log.v("extra", "Extracted "+ sdf.format(date)); } catch(Exception ex) { Log.v("extra", "Parse error!"); date = new Date(); } return date; } }