当前位置: 首页 > 知识库问答 >
问题:

找出每个月的第一天是哪一天

卫松
2023-03-14

所以我需要制作一个基本日历,显示特定年份和月份的日历(用户应该能够根据文本输入选择任何月份和任何年份)。

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

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(日历.DAY_OF_WEEK)==日历.星期一){System.out.println("这将打印是我的日历安全地收集到星期一是2015年6月的第一天.") }

它不会执行。


共有2个答案

戚峻
2023-03-14

JavaSE 8有一个全新的日期和时间API,java.time.请参阅教程。

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

LocalDate d = LocalDate.of(2011, 10, 1);

然后LocalDate::getDayOfWeek()方法将返回一个DayOfWeek枚举实例,例如SATURday

DayOfWeek dayOfWeek = localDate.getDayOfWeek ();

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

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

萨麦迪

钱经赋
2023-03-14

试试这个:

cal.set(Calendar.DATE, 1);

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

输出:

周六

演示

 类似资料:
  • 在Java中,我需要找出某个特定日期的第n个星期几。例如,今天是2016年4月20日,这是本月的第三个星期三,或者2016年10月31日,这是10月的第五个星期一。我怎样才能找到一个月中某一天发生的具体次数?

  • Java我可以通过这种方式得到一个月的第一天: 我想知道是否有一个函数可以直接做到这一点,因为我找不到一个函数来获取这些重要信息。 类似于我在这里尝试做的事情:

  • 问题内容: 我在mysql表中有几个日期,使用这些日期我需要找出一个月中的天数。假设我有2003-02-05,它应该返回28。例如 问题答案:

  • 问题 你需要去找出一个月的最后一天,但是一年中的各月并没有一个固定时间表。 解决方案 利 用JavaScript 的日期下溢来找到给出月份的第一天: now = new Date lastDayOfTheMonth = new Date(1900+now.getYear(), now.getMonth()+1, 0) 讨论 JavaScript 的日期构造函数成功地处理溢出和下溢情况,使日期的计算

  • 问题内容: 我正在尝试选择当前日期前三个月的每月的第一天。 因此,例如,如果当前日期是:“ 2015-11-08”,我的结果将是:“ 2015-08-01” 我希望这是yyyy-mm-dd格式。 我从一开始就尝试过,但是没有运气: 我已经尝试了很多事情,但似乎无法破解,任何建议或帮助都将不胜感激。先感谢您 问题答案: 逻辑很简单: 减去当月的日期减去日期后的1天 减去三个月 在SQL Server

  • 问题内容: 如何使用一年中的某天找到该月的某天? 例如,第16天是1月16日。第35天是2月4日 我的程序提示输入一年中的某一天(1-365)。 因此输入可以是252天和2017年 我已经为leap年设置了一个布尔值。 我已经使用if语句将其分为12个月(1月-12月EX:如果日期输入是1月的1-31日)。 我的程序快要完成了,这是我的最后一步,但是我不知道该怎么做。 如何在不使用API​​或导入