Android Java 判断日期是昨天,今天,明天

Android Java 判断日期是昨天今天明天

超级简单的Android 判断日期是昨天,今天,明天

看了很多实现方式,但是都有坑,比如闰年,跨月(月底,月初)都有问题,本文通过获取年月日,取时间差来判读的,超级简单。

一. 显示日期格式

  1. 今天:

    • 2019-06-20 今天
  2. 明天

    • 2019-06-20 明天
  3. 昨天

    • 2019-06-20 昨天
  4. 不在显示范围

      • 2019-06-20 周三

二. 具体实现获取今天,明天,昨天,周几

代码主要通过kotlin 实现,原理

通过 SimpleDateFormat 获取今天和目标时间的年,月,日。这样可以去除时,分,秒,毫秒,可以避免计算闰年,跨月的问题;然后两者相减,获取相差的天数,来判断今天,明天,昨天

		val DAY = 24 * 60 * 60 * 1000L
		
		/**
         * (昨天、今天,明天,周几)
         */
        fun getDayWeek(time: Long?): String {
            time?.let {
                var fomrat = SimpleDateFormat("yyyy-MM-dd")
                var t1 = fomrat.format(Date(System.currentTimeMillis()))
                var t2 = fomrat.format(Date(time))
                val today = fomrat.parse(t1).time
                val target = fomrat.parse(t2).time

                var d = today - target
                // 只获取周几,和哪一天
                //return when (d) {
                // 2019-06-20 周几/哪一天
                return "$t2 " + when (d) {
                    0L -> {
                        "今天"
                    }

                    DAY -> {
                        "昨天"
                    }

                    -DAY -> {
                        "明天"
                    }

                    else -> {
                        val calendar = Calendar.getInstance()
                        calendar.time = Date(time)
                        getWeek(calendar.get(Calendar.DAY_OF_WEEK))
                    }
                }
            }
            return ""
        }

获得周几

fun getWeek(week: Int): String {
            var w = ""

            when (week) {
                Calendar.SUNDAY -> {
                    w = "周日"
                }
                Calendar.MONDAY -> {
                    w = "周一"
                }
                Calendar.TUESDAY -> {
                    w = "周二"
                }
                Calendar.WEDNESDAY -> {
                    w = "周三"
                }
                Calendar.THURSDAY -> {
                    w = "周四"
                }
                Calendar.FRIDAY -> {
                    w = "周五"
                }
                Calendar.SATURDAY -> {
                    w = "周六"
                }
            }
            return w
        }

你可能感兴趣的:(Android开发总结)