使用java完成一个返回输入日期是周几的方法
时间: 2023-08-31 16:36:01 浏览: 125
### 回答1:
您好,我可以回答这个问题。使用Java可以通过Calendar类来实现返回输入日期是周几的方法,具体实现可以参考以下代码:
```
import java.util.Calendar;
public class Weekday {
public static void main(String[] args) {
int year = 2021;
int month = 9;
int day = 15;
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, day);
int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;
String[] weekdays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
System.out.println(year + "年" + month + "月" + day + "日是" + weekdays[weekday]);
}
}
```
以上代码中,我们首先通过Calendar.getInstance()方法获取一个Calendar对象,然后通过set()方法设置年月日,接着通过get(Calendar.DAY_OF_WEEK)方法获取星期几,最后通过字符串数组获取对应的星期几名称。
### 回答2:
要实现一个返回输入日期是周几的方法,可以使用Java中的Calendar类来完成。下面是一个示例代码:
```java
import java.util.Calendar;
import java.util.Scanner;
public class WeekdayFinder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期(格式为yyyy-MM-dd):");
String dateStr = scanner.nextLine();
Calendar calendar = Calendar.getInstance();
try {
calendar.set(Calendar.YEAR, Integer.parseInt(dateStr.substring(0, 4)));
calendar.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(5, 7)) - 1);
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(8)));
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
String[] weekdays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
System.out.println(dateStr + "是" + weekdays[weekday - 1]);
} catch (Exception e) {
System.out.println("日期格式错误!");
}
}
}
```
通过上述代码,用户可以输入一个日期,并将其以yyyy-MM-dd的格式传递给程序。程序会按照输入的日期使用Calendar类设置对应的年、月和日。接着,通过Calendar类获取当前日期的星期数,从1(周日)到7(周六),然后根据数组中对应的索引找到星期几的文本表示。最后,将结果打印输出。
需要注意的是,上述代码对输入日期格式进行了简单的校验,仅检查了输入的字符串长度以及使用Integer.parseInt进行转换的过程中是否出现异常。对于更严格的日期格式验证,可以使用正则表达式或其他方法来实现。
### 回答3:
使用Java编写一个返回某个日期是星期几的方法可以使用`java.util.Calendar`和`java.text.SimpleDateFormat`两个类来实现。具体步骤如下:
1. 首先,创建一个名为`getWeekday`的方法,该方法接受一个字符串类型的日期作为参数,并返回一个表示星期几的字符串。
2. 在方法内部,使用`SimpleDateFormat`类来解析日期字符串,并将其转换为`Date`对象。代码如下:
```java
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(dateString);
```
3. 创建一个`Calendar`对象,并使用`setTime`方法将之前解析得到的`Date`对象设置为日历的日期。代码如下:
```java
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
```
4. 使用`get`方法获取星期几的值。注意,`Calendar`类中以1为星期天,2为星期一,以此类推。而我们通常使用的以0为星期天,1为星期一,所以在返回结果时需要转换一下。代码如下:
```java
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
if (weekday == Calendar.SUNDAY) {
return "星期天";
} else {
return "星期" + (weekday - 1);
}
```
5. 将以上代码整合到`getWeekday`方法中,完整代码如下:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class WeekdayUtil {
public static String getWeekday(String dateString) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(dateString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
if (weekday == Calendar.SUNDAY) {
return "星期天";
} else {
return "星期" + (weekday - 1);
}
} catch (ParseException e) {
e.printStackTrace();
return "日期格式错误";
}
}
public static void main(String[] args) {
String date = "2021-09-30";
System.out.println(getWeekday(date)); // 输出:星期四
}
}
```
使用以上方法即可得到输入日期是星期几的结果。需要注意的是,此方法默认输入的日期字符串符合"yyyy-MM-dd"的格式,否则可能会解析出错。
阅读全文