概述
需求:判断一个日期是否为当月月末日期?
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.BooleanWritable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 判断日期是否是月的最后一天 返回ture false
*/
public class UDFIsMonthLastDay extends UDF
{
SimpleDateFormat simDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date;
Calendar calendar = Calendar.getInstance();
int dayMax = 0;
BooleanWritable result = new BooleanWritable();
public BooleanWritable evaluate(String dateStr) throws ParseException
{
if (StringUtils.isBlank(dateStr))
return null;
date = simDateFormat.parse(dateStr);
calendar.setTime(date);
dayMax = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
result.set(false);
if (dayMax == calendar.get(Calendar.DAY_OF_MONTH))
result.set(true);
else
result.set(false);
return result;
}
public static void main(String[] args) throws Exception
{
UDFIsMonthLastDay o = new UDFIsMonthLastDay();
System.out.println(o.evaluate("2012-02-29"));
System.out.println(o.evaluate("2000-02-28"));//false
System.out.println(o.evaluate("2017-02-28"));
System.out.println(o.evaluate("2017-02-30")); //虚假日期,不会报错,但是为false
}
}
输出结果显示:
true
false
true
false
最后
以上就是无私唇膏为你收集整理的UDF函数:判断日期是否为月末日期?的全部内容,希望文章能够帮你解决UDF函数:判断日期是否为月末日期?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复