java根据日期得到星期
时间: 2023-06-19 17:06:39 浏览: 42
可以使用Java中的Calendar类来得到一个日期对应的星期。下面是一个示例代码:
```java
import java.util.Calendar;
public class DateToWeek {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2021, Calendar.JULY, 19); // 设置日期为2021年7月19日
int weekDay = calendar.get(Calendar.DAY_OF_WEEK); // 得到星期几,星期日为1,星期一为2,以此类推
System.out.println("星期" + (weekDay - 1)); // 输出为星期一,因为星期一为2,减1后为1
}
}
```
上述代码中,首先创建了一个Calendar对象,设置了日期为2021年7月19日。然后使用`get`方法得到了这个日期对应的星期几。最后输出结果。
相关问题
Java根据开始日期得到当前日期属于第几周具体实现代码
以下是Java代码实现:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class WeekNumber {
public static void main(String[] args) {
String startDate = "2022-01-01"; //开始日期
String currentDate = "2022-05-30"; //当前日期
int firstDayOfWeek = 2; //设置星期的第一天为周一
int weekNumber = getWeekNumber(startDate, currentDate, firstDayOfWeek);
System.out.println("当前日期属于第" + weekNumber + "周");
}
public static int getWeekNumber(String startDate, String currentDate, int firstDayOfWeek){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
int weekNumber = 0;
try {
Date start = dateFormat.parse(startDate);
Date current = dateFormat.parse(currentDate);
long diff = current.getTime() - start.getTime();
long days = diff / (24 * 60 * 60 * 1000);
if (days >= 0){
weekNumber = (int) (days / 7); //计算所属的周数
}
weekNumber = weekNumber + 1; //周数加1
int firstWeekDay = getDayOfWeek(startDate, firstDayOfWeek); //计算开始日期的星期
weekNumber = weekNumber + ((firstWeekDay + days % 7 - 1) / 7); //计算当前日期属于第几周
} catch (ParseException e) {
e.printStackTrace();
}
return weekNumber;
}
public static int getDayOfWeek(String dateStr, int firstDayOfWeek){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
int dayOfWeek = 0;
try {
Date date = dateFormat.parse(dateStr);
dayOfWeek = date.getDay();
if (firstDayOfWeek == 2){ //如果星期的第一天为周一,则将星期天改为7
if (dayOfWeek == 0){
dayOfWeek = 7;
}
} else if (firstDayOfWeek == 1){ //如果星期的第一天为周日,则将星期一改为7,其余不变
if (dayOfWeek == 1){
dayOfWeek = 8;
}
}
} catch (ParseException e) {
e.printStackTrace();
}
return dayOfWeek;
}
}
```
javadate转星期
你可以使用Java的`java.util.Calendar`类来将日期转换为星期。以下是一个示例代码:
```java
import java.util.Calendar;
public class DateToWeekday {
public static void main(String[] args) {
// 创建一个Calendar实例
Calendar calendar = Calendar.getInstance();
// 设置日期
calendar.set(2022, Calendar.JANUARY, 1); // 这里的月份从0开始,0表示一月
// 获取星期几
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
// 将星期几转换为字符串
String weekdayString;
switch (weekday) {
case Calendar.SUNDAY:
weekdayString = "星期日";
break;
case Calendar.MONDAY:
weekdayString = "星期一";
break;
case Calendar.TUESDAY:
weekdayString = "星期二";
break;
case Calendar.WEDNESDAY:
weekdayString = "星期三";
break;
case Calendar.THURSDAY:
weekdayString = "星期四";
break;
case Calendar.FRIDAY:
weekdayString = "星期五";
break;
case Calendar.SATURDAY:
weekdayString = "星期六";
break;
default:
weekdayString = "未知";
}
System.out.println("2022年1月1日是:" + weekdayString);
}
}
```
请注意,这里的日期是通过设置`Calendar`实例的年、月、日来设置的。你可以根据自己的需求修改日期。运行以上代码,你将得到输出结果:"2022年1月1日是:星期六"。