Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i < 7; i++) { Date startDate = calendar.getTime(); calendar.add(Calendar.DATE, 1); calendar.add(Calendar.MILLISECOND, -1); Date endDate = calendar.getTime(); System.out.println("start: " + dateFormat.format(startDate) + ", end: " + dateFormat.format(endDate)); calendar.add(Calendar.MILLISECOND, 1); } 输出结果
时间: 2023-11-28 14:51:35 浏览: 40
这段代码的作用是输出当前周的每一天的起始时间和结束时间。首先通过 `Calendar.getInstance()` 获取当前日期的 `Calendar` 对象,然后使用 `calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek())` 将日期设置为本周的第一天,即星期日。接着使用 `SimpleDateFormat` 格式化日期,并循环输出每一天的起始时间和结束时间。
具体输出结果取决于当前日期是哪一天,以下是一个例子输出结果:
```
start: 2021-11-01 00:00:00, end: 2021-11-01 23:59:59
start: 2021-11-02 00:00:00, end: 2021-11-02 23:59:59
start: 2021-11-03 00:00:00, end: 2021-11-03 23:59:59
start: 2021-11-04 00:00:00, end: 2021-11-04 23:59:59
start: 2021-11-05 00:00:00, end: 2021-11-05 23:59:59
start: 2021-11-06 00:00:00, end: 2021-11-06 23:59:59
start: 2021-11-07 00:00:00, end: 2021-11-07 23:59:59
```
相关问题
Java,编写一个方法,计算你出生的那天是星期几,并显示距离现在多少天,使用calendar方法
以下是Java代码实现:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class BirthdayCalculator {
public static void main(String[] args) {
Calendar birthday = Calendar.getInstance();
birthday.set(1990, Calendar.FEBRUARY, 18); // 设置出生日期,注意月份是从0开始计数的,所以2月份实际是1
Date birthDate = birthday.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年M月d日");
System.out.println("出生日期:" + dateFormat.format(birthDate));
Calendar now = Calendar.getInstance();
long daysBetween = (now.getTimeInMillis() - birthday.getTimeInMillis()) / (1000 * 3600 * 24);
System.out.println("距离现在已经过去了 " + daysBetween + " 天。");
String[] weekdays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
int weekdayIndex = birthday.get(Calendar.DAY_OF_WEEK) - 1;
System.out.println("出生那天是" + weekdays[weekdayIndex]);
}
}
```
代码解释:
1. 创建一个 `Calendar` 实例,设置出生日期为1990年2月18日。
2. 使用 `getTime()` 方法将 `Calendar` 对象转换为 `Date` 对象。
3. 使用 `SimpleDateFormat` 类将 `Date` 格式化为指定格式的字符串。
4. 计算距离现在多少天,需要用 `getTimeInMillis()` 方法获取时间戳,再将其转换为天数。
5. 使用 `Calendar` 的 `DAY_OF_WEEK` 字段获取出生那天是星期几,注意需要将结果减一才能对应到 `weekdays` 数组的下标。
输入一个日期,格式如右所示:2003-5-29。能判断并输出“该日期是星期几”。代码保存在ex5类包中的DayOfTheWeekTest.java中。
好的,下面是代码实现:
```java
package ex5;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class DayOfTheWeekTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个日期(格式:2003-5-29):");
String dateStr = scanner.nextLine();
scanner.close();
DateFormat dateFormat = new SimpleDateFormat("yyyy-M-d");
Date date = null;
try {
date = dateFormat.parse(dateStr);
} catch (ParseException e) {
System.out.println("日期格式错误,请重新输入!");
return;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
String[] weekdays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
System.out.printf("%s是%s\n", dateStr, weekdays[dayOfWeek]);
}
}
```
以上代码实现了题目所要求的功能:从字符串类型转换为Date类型,再从Date类型转换为Calendar类型,最后获取该日期是星期几。我们使用了Calendar类的DAY_OF_WEEK属性来获取星期几,其中1表示星期日,2表示星期一,以此类推。注意:在Calendar类中,月份是从0开始的,所以实际月份需要加1。