从两个不同的日期获取日期范围
Getting range of dates from two different dates
我有两个日期:初始日期和最终日期。给定月份,我需要能够快速获得所有临时日期。问题是日期中的每个数字都归因于一个变量。原因是我使用带范围的日期选择器,但所有值都是单独给出的(如 startDay、startMonth、startYear 和 endDay、endMonth、endYear)。所以,我需要获取这些日期之间的所有日期。它必须看起来像这样:
"24/02/2018|25/02/2018|26/02/2018|27/02/2018|28/02/2018|01/03/2018"
看看这个:01/03/2018.
解决方案:
fun getDaysBetweenDates(startdate: Date, enddate: Date): List<String> {
val dates = ArrayList<String>()
val calendar = GregorianCalendar()
calendar.time = startdate
while (calendar.time.before(enddate)) {
val result = calendar.time
val formatter = SimpleDateFormat("dd/MM/yyyy")
val today = formatter.format(result)
today.split("|")
dates.add(today)
calendar.add(Calendar.DATE, 1)
}
return dates
}
好的,感谢您帮助OleV.V。和 asm0dey.
看起来您可以通过简单的 while 循环实现您想要的结果 — 只需将天数逐一添加到初始日期,直到您到达日期范围的末尾。
所以它看起来像
val interimDates = arrayListOf<Date>()
var initial: Date = Date()// obtained earlier
val c = Calendar.getInstance()
c.time = initial
while (initial < finalDate /*also obtained earlier*/) {
c.add(Calendar.DATE, 1)
interimDates.add(c.time)
initial = c.time
}
最后 interimDates
将包含所有中间日期
我有两个日期:初始日期和最终日期。给定月份,我需要能够快速获得所有临时日期。问题是日期中的每个数字都归因于一个变量。原因是我使用带范围的日期选择器,但所有值都是单独给出的(如 startDay、startMonth、startYear 和 endDay、endMonth、endYear)。所以,我需要获取这些日期之间的所有日期。它必须看起来像这样:
"24/02/2018|25/02/2018|26/02/2018|27/02/2018|28/02/2018|01/03/2018"
看看这个:01/03/2018.
解决方案:
fun getDaysBetweenDates(startdate: Date, enddate: Date): List<String> {
val dates = ArrayList<String>()
val calendar = GregorianCalendar()
calendar.time = startdate
while (calendar.time.before(enddate)) {
val result = calendar.time
val formatter = SimpleDateFormat("dd/MM/yyyy")
val today = formatter.format(result)
today.split("|")
dates.add(today)
calendar.add(Calendar.DATE, 1)
}
return dates
}
好的,感谢您帮助OleV.V。和 asm0dey.
看起来您可以通过简单的 while 循环实现您想要的结果 — 只需将天数逐一添加到初始日期,直到您到达日期范围的末尾。
所以它看起来像
val interimDates = arrayListOf<Date>()
var initial: Date = Date()// obtained earlier
val c = Calendar.getInstance()
c.time = initial
while (initial < finalDate /*also obtained earlier*/) {
c.add(Calendar.DATE, 1)
interimDates.add(c.time)
initial = c.time
}
最后 interimDates
将包含所有中间日期