技术博客

万年历—Java计算父亲节是哪天?父亲节是哪一天?2017年的父亲节是哪一天?

信息发布:soゝso 发布日期:2017-05-21 00:07 热度:248 分享到:

父亲节是哪一天?

父亲节是每年的六月份,第三个周日2017年的父亲节是:2017年06月18日,星期六,农历 五月廿四丁酉年 【鸡年】丙午月 丙子日

这有点尴尬了,和我们的节日不一样,美国的节日日期不固定。

最近几天都在攻克  Java  版本的万年历,可能有的人觉得很容易,网上大把这样的  Demo  ,但是我测试N篇,基本都有问题。比如测试 “ 1989年8月23日 ” 农历应该是“ 七月廿二 ”,但是好多算法得出是“ 七月廿一”。还有一些闰月,如1998年的6月和7月,农历为5月,属于闰月。这样细算算,问题挺多。

万年历——Java计算母亲节是哪天?母亲节是哪一天?

万年历——Java计算感恩节是哪天?感恩节是哪一天?

不扯了,远了,万年历日期查询,回头我会以工具和接口开放查询。下面说说计算父亲节吧。

父亲节计算,Java代码

/**
 * 
 * 开发公司:SOJSON在线工具 <p>
 * 版权所有:© www.sojson.com<p>
 * 博客地址:http://www.sojson.com/blog/  <p>
 * <p>
 * 
 * 计算父亲节
 * 
 * <p>
 * 
 * 区分 责任人 日期    说明<br/>
 * 创建 周柏成 2017年5月20日  <br/>
 *
 * @author zhou-baicheng
 * @email  i@itboy.net
 * @version 1.0,2017年5月20日 <br/>
 * 
 */
public static void main(String[] args) {
	//计算2017年的父亲节
	int year = 2017;
	
	//计算父亲节,父亲节为每年的6月份,第三个周日。
	Calendar cal = Calendar.getInstance();
	cal.set(Calendar.YEAR, year);
	//因为从0开始,所以减1
	cal.set(Calendar.MONTH, 6-1);
	int maxDate = cal.getActualMaximum(Calendar.DATE);
	int sundays = 0;
    for(int i = 1; i <= maxDate; i ++) {
        cal.set(Calendar.DATE, i);
        //判断是周日
        if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
            sundays ++;
            //第三个周日,返回
            if(sundays == 3) {
                break;
            }
        }
    }
    String date = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
    System.out.printf("%s年的父亲节是:%s",year,date);
    //2017年的父亲节是:2017-06-18
}



本文主题

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

¥我需要走的更远,点击我 赞助。 如果还有疑问,点击我加群,为你提供最好的解答。


工具导航地图