Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); Date monday = cal.getTime(); cal.add(Calendar.DAY_OF_WEEK, 1); Date tuesday = cal.getTime(); cal.add(Calendar.DAY_OF_WEEK, 1); Date wednesday = cal.getTime(); cal.add(Calendar.DAY_OF_WEEK, 1); Date thursday = cal.getTime(); cal.add(Calendar.DAY_OF_WEEK, 1); Date friday = cal.getTime();
时间: 2024-04-13 19:26:34 浏览: 22
这段代码使用`java.util.Calendar`来获取当前日期所在周的星期一至星期五的日期。
首先,通过`Calendar.getInstance()`获取一个`Calendar`实例,表示当前日期和时间。
然后,使用`cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY)`设置`Calendar`对象的日期为本周的星期一。
接下来,通过`cal.getTime()`将`Calendar`对象转换为`Date`对象,得到星期一的日期,并赋值给变量`monday`。
随后,通过`cal.add(Calendar.DAY_OF_WEEK, 1)`将`Calendar`对象的日期加一天,得到星期二的日期,并赋值给变量`tuesday`。
依次类推,通过不断调用`cal.add(Calendar.DAY_OF_WEEK, 1)`和`cal.getTime()`,可以得到星期三、星期四和星期五的日期,分别赋值给变量`wednesday`、`thursday`和`friday`。
最终,我们可以使用这些变量来表示当前日期所在周的星期一至星期五的日期。
相关问题
public class TrendServiceImpl implements TrendService { @Autowired private TrendDao trendDao; @Autowired private RedisTemplate<String, List<LotteryStatisticsPrizeEntity>> redisTemplate; @Override public List<LotteryStatisticsPrizeEntity> getTrend() { String key = "trend"; List<LotteryStatisticsPrizeEntity> trendList = redisTemplate.opsForValue().get(key); if (trendList != null) { return trendList; } Date weekBegin = getWeekBegin(); trendList = trendDao.selectTrend(weekBegin); redisTemplate.opsForValue().set(key, trendList, Duration.ofMinutes(10)); return trendList; } private Date getWeekBegin() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); return cal.getTime(); }
这段代码是一个 Java 类中的一个方法,它实现了 TrendService 接口中的 getTrend() 方法。该方法使用了 Autowired 注解注入了 TrendDao 和 RedisTemplate 对象。
在该方法中,首先定义了一个 key 变量,用于存储 Redis 中存储数据的键。然后调用 RedisTemplate 的 opsForValue() 方法获取 ValueOperations 对象,通过该对象的 get() 方法从 Redis 中获取数据。如果获取到了数据,直接返回该数据即可。
如果 Redis 中没有数据,则调用 getWeekBegin() 方法获取当前日期所在周的周一时间戳,然后调用 trendDao 的 selectTrend() 方法查询该周的数据。查询结果存储在 trendList 变量中。
接下来,将查询结果存储到 Redis 中,设置过期时间为 10 分钟。最后返回查询结果。
总体来说,该方法的作用是获取当前日期所在周的数据,如果 Redis 中存在该数据则直接返回,否则从数据库中查询数据,并将查询结果存储到 Redis 中。这样可以提高数据访问效率。
java 获取本周星期一0点和星期日24点 返回Date()
你好,关于你的问题,我可以回答。可以使用以下代码获取本周星期一点和星期日24点的时间:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.HOUR_OF_DAY, );
cal.set(Calendar.MINUTE, );
cal.set(Calendar.SECOND, );
Date monday = cal.getTime();
System.out.println("本周星期一点:" + sdf.format(monday));
cal.add(Calendar.DAY_OF_WEEK, 6);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
Date sunday = cal.getTime();
System.out.println("本周星期日24点:" + sdf.format(sunday));
}
}
```
希望能够帮到你。