那天是周几呢 我实在不知道怎么写

img

这个考察的是时间格式化的理解

代码:

package com.study.java8;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * hgg-2021年10月26日16:02:15
 */
public class DateTools {
 
    /**
     * 日期转星期
     * 
     * @param datetime
     * @return
     */
    public static void dateToWeek(String datetime) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        //星期几(7表示星期日)
        String[] weekDays = { "7", "1", "2", "3", "4", "5", "6" };
        Calendar cal = Calendar.getInstance(); 
        Date datet = null;
        try {
            datet = f.parse(datetime);
            cal.setTime(datet);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 指示一个星期中的某天。
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1; 
        if (w < 0){
            w = 0;
        }
        System.out.println("星期:"+weekDays[w]);
        System.out.println("该年的第几天:"+cal.get(Calendar.DAY_OF_YEAR));
    }
 
    public static void main(String[] args) {
        DateTools.dateToWeek("2020-11-17");
    }
}

结果:

img

    public static void main(String[] args) {
        // 获取输入
        Scanner sc = new Scanner(System.in);
        // 日期格式
        String dateFormat = "yyyy-MM-dd";
        try {
            SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
            // 转日期
            Date date = sdf.parse(sc.nextLine());
            Calendar c = Calendar.getInstance();
            // 转成日历
            c.setTime(date);
            int week = c.get(Calendar.DAY_OF_WEEK);
            int day = c.get(Calendar.DAY_OF_YEAR);
            // week 周日到周一对应的是 1 - 7,所以要转换一下
            System.out.println(week == 1 ? 7 : week - 1);
            System.out.println(day);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }