- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些代码可以获取当前星期并将其加载到数组中:
DateFormat format = new SimpleDateFormat("M-dd");
calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
days = new String[7];
for (int i = 0; i < 7; i++)
{
calendar.add(Calendar.DATE, 1);
days[i] = format.format(calendar.getTime());
}
然后,我有一些代码在选择按钮时运行,该按钮将检索上周的日期并将它们加载到数组中:
DateFormat format = new SimpleDateFormat("M-dd");
days = new String[7];
for (int i = 0; i < 7; i++)
{
calendar.add(Calendar.DATE, -1);
days[i]=format.format(calendar.getTime());
}
我的问题是,它将加载例如:5-22-17、5-23-17、5-24-17、5-25-17、5-26-17、5-27-17、5 -28-17 进入第一周的初始加载,然后当我单击“上一个”按钮运行上一个按钮代码时,它只会返回 1 天:17 年 5 月 21 日 - 17 年 5 月 27 日。如果我再次单击它,它就会返回整整一周:17 年 14 月 5 日 - 17 年 5 月 20 日。
如何修复我的代码,以便在第一次点击时正确检索前一周的日期?
最佳答案
首先,您将一周的第一天设置为星期日,但随后在获取第一个值之前添加 1 ,因此结果为 Mon 5/22
到 Sun 5/28
,而不是周日 5/21
到 周六 5/27
。
其次,当第一个循环完成时,Calendar 对象位于 5/28
。然后向后退一步,在获取最后一个值之前减去 1,因此结果是 5/27
向下 到 5/21
,而不是像你说的那样 5/21
到 5/27
。
这使得日历对象位于5/21
。重复上述操作,您会将 5/20
降至 5/14
,而不是 5/14
降至 5/20
>.
因此,要获得周日到周六一周的结果,就像您告诉日历您想要的那样,请在获取值后添加 1。为了让一周的时间按正确的顺序排列,一定要循序渐进。要返回到上一周,由于日历位于该周之后,您可以返回 2 周以开始构建上一周。
public class Test {
private Calendar calendar;
public String[] getCurrentWeek() {
this.calendar = Calendar.getInstance();
this.calendar.setFirstDayOfWeek(Calendar.SUNDAY);
this.calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return getNextWeek();
}
public String[] getNextWeek() {
DateFormat format = new SimpleDateFormat("M-dd");
String[] days = new String[7];
for (int i = 0; i < 7; i++) {
days[i] = format.format(this.calendar.getTime());
this.calendar.add(Calendar.DATE, 1);
}
return days;
}
public String[] getPreviousWeek() {
this.calendar.add(Calendar.DATE, -14);
return getNextWeek();
}
public static void main(String[] args) {
Test t = new Test();
System.out.println("Current : " + Arrays.toString(t.getCurrentWeek()));
System.out.println("Previous: " + Arrays.toString(t.getPreviousWeek()));
System.out.println("Previous: " + Arrays.toString(t.getPreviousWeek()));
System.out.println("Next : " + Arrays.toString(t.getNextWeek()));
System.out.println("Next : " + Arrays.toString(t.getNextWeek()));
}
}
输出
Current : [5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27]
Previous: [5-14, 5-15, 5-16, 5-17, 5-18, 5-19, 5-20]
Previous: [5-07, 5-08, 5-09, 5-10, 5-11, 5-12, 5-13]
Next : [5-14, 5-15, 5-16, 5-17, 5-18, 5-19, 5-20]
Next : [5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27]
关于java - Android 获取上周日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44122813/
我想检索上周和 15 周前的数据。 注意: 仅 15 周前的同一工作日,而不是其间的所有数据。例如,我想要 15 周前的每个星期四的数据。 这是我的 MySQL 表的简化,具有所需的结果。 Stati
我正在寻找一种基于以下条件选择行的方法: 本周 (S-S) 上周 (SS) 我遇到的问题是专门从Sunday-Sunday中选择。 目前我正在使用: SELECT SUM(time) FROM `ti
我有一个包含以下数据的 SQL 表: select day, counter from table1 where day LIKE '%201601%'; +----------+---------+
我有一个包含 3 列的表格:id、updated_at、click_sum。 许多行具有完全相同的 updated_at 值,这使得很难简单地检索数据、按 update_at 排序并在图表中显示总和。
我有一个 orders 表,其中包含 orderID 和 order_date。 我想查询上周、上个月甚至昨天的数据,但是我不知道如何从当前时间中减去时间 我的 order_date 字段是 TIME
在我的 iTunes connect 开发者资料中,我看到了与上周相比的变化,就在它的下方,售出单位数量旁边显示有变化。这个“变化”是什么?这是有多少人卸载了该应用程序? 最佳答案 不是,是上周下载量
我正在做一些统计,我想选择(仅上周)和本周的时间。 本周很简单: $start = strtotime('this week'); $finish = time(); 上周 $start = strt
前言 本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: ?
查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m
我需要设置上周、上个月更改下拉列表的时间段 我正在做 switch (DDL.SelectedIndex) { case 0:
使用此查询: date(timestamp_column) >= SUBDATE(curdate(), WEEKDAY(curdate())) - interval 1 week AND date(t
我的 Android SQLite 数据库中有这个表: CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date
目录 1、总结 一句话总结:使用mktime()函数即可:PHP mktime() 函数用于返回一个日期的 Unix 时间戳。 1、mktime()如何获取昨天的开始时间和结束时间? 2、
我需要显示有关Kibana的报告,该报告将基于多个日期间隔汇总结果。时间与时间戳一起映射为浮点数据类型。 例: Jobs, Yesterday, Last Week, Last Quarters Jo
我有一个名为 sales 的表,如下所示: s.no item_sold date 1 soap 25.07.2017 2
我想做的是让 NSDate 今天、昨天、本周、上周、本月、上个月变量准备好进行比较,以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代
所以,我想做的是实现一个数据范围选择,它不显示两个日期选择器“从”和“到”。我想让用户在今天、昨天、上周、上个月等之间进行选择。 我在服务器端的应用程序中有类似的东西,但是: 1- 代码看起来很糟糕;
我是一名优秀的程序员,十分优秀!