JAVA知道当前是星期几求出这周每天的日期

本文分享了一段用于计算指定周内所有日期的Java代码,并针对如何获取当前周的起始与结束日期进行了讨论。

开场白:代码啊,代码,程序猿啊,程序猿。为啥你就这来的杯具了。发一下小牢骚。发现自从做了程序猿之后,本来就性格内向且不爱说话的我,现在变的更加的有点不会说话了。你说。这样我情何以堪。下个礼拜就要参加同学的婚礼了。哎,到目前为止,我还没对象。是can not find object了么。why。到现在还不知道exception到底出在了哪里。今天上班。办公室气氛不知为什么气氛特别的冷清,僵直。而且我今天还和同事搞 的特别的不高兴。就为了那点破代码的事情。就为了那几个破bug的事情,搞 的人和人之间隔阂重重,你说着是我想要的么。我都有一点不想干IT这行了。之前在我还是一位标准的菜鸟之前,虽然什么都不会,都处在一个学习的阶段,但是很快乐。到现在了。自己的技术也比以前提升了。可是我却莫名的感到了,在处理人和人之间的情感和关系这件事情上变的却来却沉默,不想和别人吵,争论是非。到底是谁对谁错,确实是这样,事实本来就没有谁对谁错,俗话说的好。跟同事讲道理你是不想混了。。。。等等。可为啥我就一下子接受不了这样子呢。废话不多说,就是因为以下这些该死的代码。把我整的今天都没过好。亮相:

public String getWeekDate(int week){
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		 
        // 默认时,每周第一天为星期日,需要更改一下
        c.setFirstDayOfWeek(Calendar.MONDAY);
 
        Date current = c.getTime();
 
        c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        Date first = c.getTime();
 
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        Date last = c.getTime();
        
        String dateFirst = dateFormat.format(first);
        String dateSecond = dateFormat.format(last);
        System.out.printf("当前日期:%tF%n", current);
        System.out.printf("本周第一天(周一):%tF%n", first);
        System.out.printf("本周最后一天(周日):%tF%n", last);
        return DatetoDate(dateFirst, dateSecond, week);
	}

以上代码解释,可求出当前时间范围内一周的日期。

以下是求出两个起始时间范围内指周几的所有日期

public String DatetoDate(String dateFirst,String dateSecond,int week){
		System.out.println("starttime"+dateFirst+"endtime"+dateSecond+"week"+week);
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		String date2datestr=""; //返回的星期字符串
        try{
            Date dateOne = dateFormat.parse(dateFirst);
            Date dateTwo = dateFormat.parse(dateSecond);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(dateOne);
            while(calendar.getTime().compareTo(dateTwo)<=0){
            	String datestr_l = dateFormat.format(calendar.getTime());
            	Date date = dateFormat.parse(datestr_l);
            	int day = date.getDay()==0?7:date.getDay();
            	if(week==day){
            		date2datestr=datestr_l;//每个日期
            	}
                calendar.add(Calendar.DAY_OF_MONTH, 1);                
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
        return date2datestr;
	}
因为一开始不知道知道当前的时间求出这一周之内的所有日期。搞的和同事不好了。因为这块本来是他的活,但是他那边现在有活,而且看他比较烦躁所以我就自己做了。代码给大家分享出来。还希望大家多多指点。同事也希望大家不要为此困惑。

<think>我们要判断当前日期星期,可以使用Java中的Calendar类或者新的java.time包(Java 8及以上)中的类。 这里提供两种方式: 1. 使用传统的Calendar类 2. 使用java.time.LocalDate(推荐,因为更简单直观) 方法一:使用Calendar 步骤: - 获取Calendar实例 - 设置时间为当前时间 - 使用Calendar.DAY_OF_WEEK获取星期(注意:星期日是1,星期一是2,...,星期六是7) 方法二:使用java.time.LocalDate - 获取当前日期:LocalDate.now() - 调用getDayOfWeek()方法,返回DayOfWeek枚举,然后可以获取它的值或名称 下面分别给出两种方法的代码示例: </think>在Java中,判断当前日期星期可以使用`java.util.Calendar`或Java 8引入的`java.time` API。以下是两种实现方式: ### 方法1:使用`java.util.Calendar`(兼容旧版Java) ```java import java.util.Calendar; public class DayOfWeekExample { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); String[] days = new String[]{ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; System.out.println("今天是: " + days[dayOfWeek - 1]); } } ``` **代码解释**: 1. `Calendar.getInstance()` 获取当前日期时间的Calendar对象 2. `calendar.get(Calendar.DAY_OF_WEEK)` 返回星期的整数值(1=周日, 2=周一...7=周六) 3. 通过字符串数组映射将数字转换为中文星期名称 4. 注意:数组索引需要减1(因为返回值范围是1-7) ### 方法2:使用`java.time` API(推荐,Java 8+) ```java import java.time.LocalDate; import java.time.format.TextStyle; import java.util.Locale; public class DayOfWeekModern { public static void main(String[] args) { LocalDate today = LocalDate.now(); String dayOfWeek = today.getDayOfWeek() .getDisplayName(TextStyle.FULL, Locale.CHINA); System.out.println("今天是: " + dayOfWeek); } } ``` **代码解释**: 1. `LocalDate.now()` 获取当前日期 2. `getDayOfWeek()` 返回`DayOfWeek`枚举对象 3. `getDisplayName()` 将星期转换为本地化字符串 - `TextStyle.FULL`:完整格式(如"星期一") - `Locale.CHINA`:指定中文区域设置 **输出示例**(假设当前是周三): ``` 今天是: 星期三 ``` ### 注意事项: 1. 方法1返回值说明: - `Calendar.SUNDAY` = 1 - `Calendar.MONDAY` = 2 - ... - `Calendar.SATURDAY` = 7 2. 方法2支持自动适配不同语言,只需修改`Locale`参数: - 英文:`Locale.US` → "Wednesday" - 日文:`Locale.JAPAN` → "水曜日"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值