美文网首页
Android 获得日期所在月的第一天,最后一天,星期几,昨天

Android 获得日期所在月的第一天,最后一天,星期几,昨天

作者: 懵懵懂懂_YOYO | 来源:发表于2021-04-29 16:06 被阅读0次

    Android  获得 星期几,昨天今天明天 ,日期所在月的第一天和最后一天

    最近用到的一些时间控制,记录一下。

    明天的时间戳:long nextDay = System.currentTimeMillis() +24 *60 *60 *1000L;//明天


    /**

    * 获取传入日期所在月的第一天

    */

    public static DategetFirstDayDateOfMonth(final Date date) {

    final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);

        cal.set(Calendar.DAY_OF_MONTH, last);

        return cal.getTime();

    }


    /**

    * 获取传入日期所在月的最后一天

    */

    public static DategetLastDayOfMonth(final Date date) {

    final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

        cal.set(Calendar.DAY_OF_MONTH, last);

        return cal.getTime();

    }


    /**

    * 返回星期几

    */

    public static StringgetWeekNameFromMillis(Long millis) {

    String weekStr ="";

        if (millis ==null || millis ==0) {

    L.e("时间有错");

            return weekStr;

        }

    int selectDate =getWeekValueFromMillis(millis);

        switch (selectDate) {

    case 1:

    weekStr ="周日";

    break;

            case 2:

    weekStr ="周一";

    break;

            case 3:

    weekStr ="周二";

    break;

            case 4:

    weekStr ="周三";

    break;

            case 5:

    weekStr ="周四";

    break;

            case 6:

    weekStr ="周五";

    break;

            case 7:

    weekStr ="周六";

    break;

            default:

    weekStr ="";

    break;

        }

    return weekStr;

    }


    /**

    * 昨天 今天 明天

    */

    public static StringgetDayFromMillis(Long millis) {

    String weekStr ="";

        if (millis ==null || millis ==0) {

    L.e("时间有错");

            return weekStr;

        }

    int currentDate =getWeekValueFromMillis(System.currentTimeMillis());

        int selectDate =getWeekValueFromMillis(millis);

        int currentDay =getDayoFMonthFromMillis(System.currentTimeMillis());

        int selectDay =getDayoFMonthFromMillis(millis);

        if (bIsCurrentMonth(millis) && currentDay == (selectDay +1) && currentDate == (selectDate +1)) {

    return "昨天";

        }else if (bIsCurrentMonth(millis) && currentDay == selectDay && currentDate == selectDate) {

    return "今天";

        }else if (bIsCurrentMonth(millis) && currentDay == (selectDay -1) && currentDate == (selectDate -1)) {

    return "明天";

        }

    return weekStr;

    }

    /**

    * 必须是当前年份,不能跨年

    */

    public static boolean bIsCurrentMonth(long millis) {

    Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

        int current = calendar.get(Calendar.MONTH);

        int year = calendar.get(Calendar.YEAR);

        return year ==getYearValueOfMillis(millis) && current ==getMonthValueFromMillis(millis);

    }

    public static int getMonthValueFromMillis(long millis) {

    Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

        calendar.setTimeInMillis(millis);

        return calendar.get(Calendar.MONTH);

    }

    public static int getYearValueOfMillis(long millis) {

    Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

        calendar.setTimeInMillis(millis);

        return calendar.get(Calendar.YEAR);

    }

    public static int getWeekValueFromMillis(long millis) {

    Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

        calendar.setTimeInMillis(millis);

        return calendar.get(Calendar.DAY_OF_WEEK);

    }

    public static int getDayoFMonthFromMillis(long millis) {

    Calendar calendar = Calendar.getInstance(TimeUtils.getDefaultTimeZone(), TimeUtils.getDefaultLocale());

        calendar.setTimeInMillis(millis);

        return calendar.get(Calendar.DAY_OF_MONTH);

    }

    相关文章

      网友评论

          本文标题:Android 获得日期所在月的第一天,最后一天,星期几,昨天

          本文链接:https://www.haomeiwen.com/subject/lojwrltx.html