package com.udf;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.hadoop.hive.ql.exec.UDF;
public class UDFZodiacSign extends UDF{
public String evaluate(String birthday) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//new一个时间日期的对象
Date date = simpleDateFormat.parse(birthday); //利用日期对象对birthday进行一个解析
// 获取日历对象
Calendar calendar = Calendar.getInstance();
// 把日期放入日历
calendar.setTime(date);
// 获取月份,月份从 0 开始
int month = calendar.get(Calendar.MONTH) + 1;
// 获取号数,号数从 1 开始
int day = calendar.get(Calendar.DAY_OF_MONTH);
if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) {
return "水瓶座";
}
if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) {
return "双鱼座";
}
if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) {
return "白羊座";
}
if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) {
return "金牛座";
}
if ((month == 5 && day >= 21) || (month == 6 && day <= 21)) {
return "双子座";
}
if ((month == 6 && day >= 22) || (month == 7 && day <= 22)) {
return "巨蟹座";
}
if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) {
return "狮子座";
}
if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) {
return "处女座";
}
if ((month == 9 && day >= 23) || (month == 10 && day <= 23)) {
return "天秤座";
}
if ((month == 10 && day >= 24) || (month == 11 && day <= 22)) {
return "天蝎座";
}
if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) {
return "射手座";
}
if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) {
return "摩羯座";
}
return "日期错误";
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "日期错误";
}
}
}



