⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 birthdaytimes.java

📁 /** * 去除字符串s左边的半角空格 * @param s 字符串 * @return 去除左边半角空格后的字符串 */
💻 JAVA
字号:
package com.totyuedu.c69.a20080905;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class BirthdayTimes {

    /**
     * 根据身份证号码,计算该同学过了多少个生日了
     * 要考虑闰年2月29日出生的情况
     * 
     */
    public static void main(String[] args) throws Exception {

        String idnum = "330621198402290012";
        IdentityCard id = new IdentityCard(idnum);

        Date dateBirthday = id.getBirthday();

        if (dateBirthday == null) {
            return;
        }
        // 设置生日
        Calendar birthday = Calendar.getInstance();
        birthday.setTime(dateBirthday);

        System.out.println(formatDate(birthday.getTime()));

        // 类取得当前日期
        Calendar today = Calendar.getInstance();

        // 变量births存放过了多少个生日
        int births = 0;

        // 如果不幸在闰年的2月29日出生
        // 注意,Calender对象里,MONTH是月份减1
        if (birthday.get(Calendar.MONTH) == 1
                && birthday.get(Calendar.DATE) == 29
                && isLeapYear(birthday.get(Calendar.YEAR))) {
            // 从出生那年开始到今年开始循环
            for (int i = birthday.get(Calendar.YEAR) + 1; i < today
                    .get(Calendar.YEAR); i++) {
                // 如果是闰年,births++
                if (isLeapYear(i)) {
                    births++;
                }
            }
            // 如果今年是闰年
            if (isLeapYear(today.get(Calendar.YEAR))) {
                Calendar leapYear = Calendar.getInstance();
                leapYear.set(Calendar.MONTH, 1);
                leapYear.set(Calendar.DATE, 29);
                // 今年2月29日的生日也过了,births++
                if (today.after(leapYear)) {
                    births++;
                }
            }
        } else {
            births = today.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
            birthday.set(Calendar.YEAR, today.get(Calendar.YEAR));
            if (today.before(birthday)) {
                births--;
            }
        }

        System.out.println("身份证号为:" + id.getId() + "的同学到今天为止,过了" + births
                + "个生日了");

    }

    /**
     * 格式化的日期
     * 
     * @param date 需格式化的日期
     * @param layout 日期格式,默认为yyyy-MM-dd
     * @return 按日期格式格式化后的日期字符串
     */
    public static String formatDate(Date date, String layout) {
        if (date == null) {
            return "";
        }
        if (layout == null || layout.length() == 0) {
            layout = "yyyy-MM-dd";
        }
        SimpleDateFormat sdf = new SimpleDateFormat(layout);
        return sdf.format(date);
    }

    /**
     * 按yyyy-MM-dd格式化的日期
     * 
     * @param date 需格式化的日期
     * @return 按yyyy-MM-dd格式化后的日期字符串
     */
    public static String formatDate(Date date) {

        return formatDate(date, null);
    }

    /**
     * 判断是否为闰年
     * 
     * @param year 年份
     * @return 闰年为true,否则为false
     */
    public static boolean isLeapYear(int year) {
        return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -