Java 找出给定月份的第一天是哪一天

Java 找出给定月份的第一天是哪一天,java,calendar,Java,Calendar,因此,我需要制作一个基本日历,显示特定年份和月份的日历(用户应该能够选择 基于文本输入的任意月份和任意年份) 到目前为止,我已经成功地创建了一个日历obj,使用扫描仪从用户那里获取所需的月份和年份,但我的问题是,我如何找出月份的第一天是什么?在上面的例子中,今天是星期六。我构建它的逻辑是,如果我知道第一天,我可以创建一个字符串[][]数组,并通过循环从第一天开始的月份,开始显示相关日期的日期。我用扫描仪得到了所需的月份和年份。然后我创建了一个calendar对象并设置了calendar变量;Ca

因此,我需要制作一个基本日历,显示特定年份和月份的日历(用户应该能够选择 基于文本输入的任意月份和任意年份)

到目前为止,我已经成功地创建了一个日历obj,使用扫描仪从用户那里获取所需的月份和年份,但我的问题是,我如何找出月份的第一天是什么?在上面的例子中,今天是星期六。我构建它的逻辑是,如果我知道第一天,我可以创建一个字符串[][]数组,并通过循环从第一天开始的月份,开始显示相关日期的日期。我用扫描仪得到了所需的月份和年份。然后我创建了一个calendar对象并设置了calendar变量;Calendar.YEAR和Calendar.MONTH,根据用户要求:

Calendar cal= Calendar.getInstance();
cal.set(Calendar.YEAR, year); //my year variable is set 2015
cal.set(Calendar.MONTH, chosenMonth); //my chosenMonth is set to 5 since January starts from 0.
我尝试使用下面的代码来测试我的日历,看看如果周一是一个月的第一天,它是否会执行代码。2015年6月,它是

if(cal.get(Calendar.DAY\u OF_WEEK)=Calendar.MONDAY){
System.out.println(“这将打印我的日历,成功地收集到星期一是2015年6月的第一天。”)
}

它不会执行。

请尝试以下操作:

cal.set(Calendar.DATE, 1);

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEEE");
System.out.println(sdf.format(cal.getTime()));
输出:

星期六


JavaSE8有一个全新的日期和时间API。看

您可以使用该类获取给定星期的日期。例如,从上面使用你的一天

LocalDate d = LocalDate.of(2011, 10, 1);
然后方法将返回一个枚举实例,例如

该枚举可以为句子输出呈现本地化字符串

 String output = dayOfWeek.getDisplayName ( TextStyle.FULL , Locale.CANADA_FRENCH); // Or Locale.US or Locale.ENGLISH, and so on.
萨梅迪

 String output = dayOfWeek.getDisplayName ( TextStyle.FULL , Locale.CANADA_FRENCH); // Or Locale.US or Locale.ENGLISH, and so on.