用JAVA来写的话。怎么写出出生年月日来计算距离下个生日还有多少天的方法?

用JAVA来写的话。怎么写出出生年月日来计算距离下个生日还有多少天的方法?
出生年月日的格式是yyyy-MM-dd。
返回值为String类型

// 用来计算两个日期之间相差的毫秒数
public static void test(String date1,String date2) throws ParseException
{
DateFormat df = DateFormat.getDateInstance();
df= new SimpleDateFormat("yyyy-MM-dd");

Date date_1 = df.parse(date1);
Date date_2 = df.parse(date2);

long time1 = date_1.getTime();
long time2 = date_2.getTime();
long time3 = Math.abs(time1-time2);

int day = getDay(time3);
System.out.println("两日期相隔"+day+"天");
}
//将两个日期之间的毫秒数换算成天数
private static int getDay(long time)
{
int day = (int)(time/1000/60/60/24);
return day;
}


    public static void main(String[] args) {
        int nextDays = nextBirthday(2, 13, false);
        if (nextDays > 0) {
            System.out.println("下个生日还有:" + nextDays);
        }
    }

    /**
     * 
     * @param month
     *            生日的月份
     * @param day
     *            生日的日期
     * @param incoludeToday
     *            包含今天
     * @return
     */
    public static int nextBirthday(int month, int day, boolean incoludeToday) {
        Calendar thisYearBirthday = Calendar.getInstance();
        thisYearBirthday.set(Calendar.MONTH, month - 1);
        thisYearBirthday.set(Calendar.DAY_OF_MONTH, day);
        return daysOfTwo(new Date(), thisYearBirthday.getTime()) - (incoludeToday ? 1 : 0);
    }

    public static int daysOfTwo(Date fDate, Date oDate) {
        Calendar aCalendar = Calendar.getInstance();
        aCalendar.setTime(fDate);
        int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
        aCalendar.setTime(oDate);
        int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
        return day2 - day1;
    }


package test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Testone {

public static void main(String[] args) {
    try {
        test("1991-05-11");
    } catch (ParseException e) {
        e.printStackTrace();
    }
}

public static void test(String date1) throws ParseException
{
String a1=date1.substring(0, 4);
Integer a2=Integer.parseInt(a1);
DateFormat df = DateFormat.getDateInstance();
df= new SimpleDateFormat("yyyy-MM-dd");
Date date_1 = df.parse(date1);
Date date_2 = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
String dateString = formatter.format(date_2);  
String a3=dateString.substring(0, 4);
Integer a4=Integer.parseInt(a3);
long time1 = date_1.getTime();
long time2 = date_2.getTime();
long time3 = Math.abs(time1-time2);

int day = getDay(time3);
int day1= day-Ser(a2, a4)-(a4-a2)*365;


System.out.println("两日期相隔"+(Math.abs(day1))+"天");
}
//将两个日期之间的毫秒数换算成天数
private static int getDay(long time)
{
int day = (int)(time/1000/60/60/24);
return day;
}

public static  Integer   Ser(Integer str,Integer str2){
    int number=0;
    for(int i = str; i<=str2; i++){
         if(i%4==0&&i%100!=0||i%400==0){
             number+=1;
         }
    }
    return number;
}

}