用java写一个方法,判断传入字符串是否为数字,如果是,假设数字为日期天数,并且是1号为星期一,返回星期的中文
时间: 2024-05-01 17:21:36 浏览: 29
可以使用Java的正则表达式来判断传入字符串是否为数字,然后使用Java的Calendar类来计算日期对应的星期。
以下是示例代码:
```java
import java.util.Calendar;
import java.util.regex.Pattern;
public class DateUtils {
public static String getWeekday(String str) {
// 使用正则表达式判断是否为数字
if (!Pattern.matches("\\d+", str)) {
return null;
}
int day = Integer.parseInt(str);
if (day < 1 || day > 31) {
return null;
}
// 创建Calendar实例
Calendar cal = Calendar.getInstance();
// 设置日期为指定天数
cal.set(Calendar.DAY_OF_MONTH, day);
// 设置日期为本月的1号
cal.set(Calendar.DAY_OF_MONTH, 1);
// 获取1号是星期几
int weekday = cal.get(Calendar.DAY_OF_WEEK);
// 返回星期的中文
switch (weekday) {
case Calendar.MONDAY:
return "星期一";
case Calendar.TUESDAY:
return "星期二";
case Calendar.WEDNESDAY:
return "星期三";
case Calendar.THURSDAY:
return "星期四";
case Calendar.FRIDAY:
return "星期五";
case Calendar.SATURDAY:
return "星期六";
case Calendar.SUNDAY:
return "星期日";
default:
return null;
}
}
}
```
使用示例:
```java
String weekday = DateUtils.getWeekday("7");
if (weekday != null) {
System.out.println("7号是" + weekday);
} else {
System.out.println("不是合法的日期");
}
```