gpt4 book ai didi

android - 如何在给定字符串日期的情况下获取一周中的天数

转载 作者:行者123 更新时间:2023-11-29 18:30:12 25 4
gpt4 key购买 nike

我有一个字符串是String dateOfOrder = "01/06/2019";

我想获得第 1 周的天数,因为 6 月的第一周只有 1 天。

我可以知道如何处理第 X 周的天数吗?

Like In June 2019

Week 1 : Have 1 day Week 2 - 5 : have 7 days Week 6 : Have 1 day

编辑

我正在考虑这种获取一周中的天数的方法,因此我有几个 String arrayList。例如,在我上面给定的日期,如果第 1 周有星期六。第 1 周 Array List 将在其中添加星期六和 .size()。如果第 2 周有周日到周六,它将添加第 2 周数组列表中的所有日期和 .size() 以获得 ArrayList 中的天数。最后,6 月的最后一周,即第 6 周将只有星期日,它将添加到第 6 周的 ArrayList 中,并且只有星期日的值和 .size() 得到 1。

我想知道这是否是最好的方法,我不确定我是否可以得到一周中的正确日期。

最佳答案

使用 SimpleDateFormatter 将字符串解析为日期。您的解析模式可以是 dd/MM/YYYY

DateFormat df = new SimpleDateFormat("dd/MM/YYYY"); 
Date date = df.parse(dateOfOrder);

获得日期后,使用 Calendar 获取星期几。

 Calendar c = Calendar.getInstance();
c.setTime(yourDate);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);

计算给定周(和月)中的天数。

int daysInMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH);
int currentMonth = c.get(Calendar.MONTH);
int prevWeekMonth = c.add(Calendar.DAY_OF_MONTH, -7).get(Calendar.MONTH);

c.setTime(yourDate);
int nextWeekMonth = c.add(Calendar.DAY_OF_MONTH, 7).get(Calendar.MONTH);

c.setTime(yourDate);

if (prevWeekMonth != currentMonth) {
// first or second week
if (dayOfMonth > dayOfWeek) {
// second week
numOfDaysInWeek = 7;
} else {
// first week
int firstDay = c.set(Calendar.DAY_OF_MONTH, 1).get(Calendar.DAY_OF_WEEK);
numOfDaysInWeek = 7 - firstDay;
}
} else if (nextWeekMonth != currentMonth) {
// last or second last week
if (dayOfMonth - dayOfWeek + 7 >= daysInMonth) {
// last week
numOfDaysInWeek = c.set(Calendar.DAY_OF_MONTH, daysInMonth).get(Calendar.DAY_OF_WEEK);
} else {
// second last week
numOfDaysInWeek = 7;
}
} else {
// middle weeks
numOfDaysInWeek = 7;
}

注意:条件有点粗糙,您可能需要添加 1,具体取决于 dayOfWeek、dayOfMonth 的索引是 0 还是 1。

关于android - 如何在给定字符串日期的情况下获取一周中的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56700066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com