java计算某个日期是周几

本文提供了两种将特定日期转换为星期的方法:一种返回中文星期名称,另一种返回星期的数字表示。这两种方法都使用了Java标准库中的SimpleDateFormat和Calendar组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 1,返回中文
    public static String getWeekday(String date) {// 必须yyyy-MM-dd
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdw = new SimpleDateFormat("E");
        Date d = null;
        try {
            d = sd.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return sdw.format(d);
    }

    // 2,返回数字
    public static int dayForWeek(String pTime) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        c.setTime(format.parse(pTime));
        int dayForWeek = 0;
        if (c.get(Calendar.DAY_OF_WEEK) == 1) {
            dayForWeek = 7;
        } else {
            dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
        }
        return dayForWeek;
    }

    public static void main(String[] args) {
        try {
            System.out.println(dayForWeek("2017-5-17"));
            System.out.println(getWeekday("2017-5-17"));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
### 如何用编程语言或工具将日期格式化为包含周几的字符串 以下是几种常见编程语言实现将日期格式化为包含星期几的字符串的方式: #### JavaScript 实现 在 JavaScript 中可以利用 `Date` 对象以及其内置方法完成此操作。通过创建一个数组存储一周中的每一天名称,再结合 `getDay()` 方法返回对应的索引来获取具体的星期几。 ```javascript function getFormattedDate(date) { const daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; const dayName = daysOfWeek[date.getDay()]; // 获取星期几的名字 const formattedDate = `${date.toDateString()} (${dayName})`; return formattedDate; } const currentDate = new Date(); console.log(getFormattedDate(currentDate)); // 输出类似于 'Mon Oct 03 2022 (Monday)' ``` 上述代码片段展示了如何构建一个函数来返回带有具体星期名的日期字符串[^1]。 #### Java 使用 SimpleDateFormat 类 Java 提供了强大的日期处理类库之一就是 `SimpleDateFormat`,它允许开发者定义自己的日期时间模式来进行输入输出转换。 ```java import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) throws Exception { Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd EEEE"); System.out.println(sdf.format(today)); // 打印形如'2022-10-03 Monday' } } ``` 这里 `"EEEE"` 表示完整的星期名称;如果只需要缩写形式,则可以用 `"EE"` 或者 `"E"` 来代替[^2][^3]。 #### PHP 的 date 函数 PHP 内置了一个非常灵活方便使用的 `date()` 函数用于格式化本地时间戳成为可读性的日期或者时间字符串。 ```php <?php $dateString = "2022-10-03"; $timestamp = strtotime($dateString); echo date('Y-m-d l', $timestamp); // 输出像这样 '2022-10-03 Monday' ?> ``` 在这个例子当中 `'l'`(小写字母L),代表的是完整英文单词表示的一周中的某天[^4]。 #### VBA Format 函数 对于 Microsoft Office 宏编写爱好者来说,VBA 是不可或缺的好帮手。其中 `Format` 函数提供了多种预设样式可以直接调用。 ```vba Sub Example() Dim myDate As Date myDate = #10/3/2022# MsgBox Format(myDate, "mm/dd/yyyy dddd") ' 显示消息框内容为 “10/03/2022 Monday” End Sub ``` 注意这里的 `"dddd"` 参数决定了最终结果里会展示全称的工作日名字[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值