java写一个方法,输入年月获取这个月最大日期
时间: 2024-02-02 21:02:54 浏览: 30
可以使用Java的Calendar类来实现这个方法。以下是一个示例代码:
```java
import java.util.Calendar;
public class MaxDateOfMonth {
public static int getMaxDate(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(year, month - 1, 1); // 设置日期为所查月份的1号
return cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 获取这个月的最大日期
}
public static void main(String[] args) {
int year = 2021;
int month = 8;
int maxDate = getMaxDate(year, month);
System.out.println(year + "年" + month + "月的最大日期为:" + maxDate);
}
}
```
这个方法将年和月作为参数传入,使用Calendar类将日期设置为所查月份的1号,然后使用getActualMaximum方法获取这个月的最大日期。在主函数中,我们可以传入所需的年份和月份,并打印出最大日期。
相关问题
用java写一个控制台输入年月日,打印出本月日历
好的,以下是Java代码实现:
```java
import java.util.*;
public class PrintCalendar {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入日期(格式:2022-01):");
String str = input.nextLine(); // 例如输入:2022-01
String[] arr = str.split("-");
int year = Integer.parseInt(arr[0]);
int month = Integer.parseInt(arr[1]);
input.close();
// 获取当月的天数和第一天是星期几
int days = getDaysOfMonth(year, month);
int firstDayOfWeek = getFirstDayOfWeek(year, month);
// 输出日历
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <= days; i++) {
if (i == 1) {
for (int j = 0; j < firstDayOfWeek; j++) {
System.out.print("\t");
}
}
System.out.print(i + "\t");
if ((i + firstDayOfWeek) % 7 == 0) {
System.out.println();
}
}
}
// 获取当月的天数
public static int getDaysOfMonth(int year, int month) {
int days = 0;
if (month == 2) {
days = year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? 29 : 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
} else {
days = 31;
}
return days;
}
// 获取当月第一天是星期几(星期日为0,星期一为1,...,星期六为6)
public static int getFirstDayOfWeek(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(year, month - 1, 1);
return c.get(Calendar.DAY_OF_WEEK) - 1; // 对应上面的0~6
}
}
```
使用示例:
```
请输入日期(格式:2022-01):2022-01
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
```
使用java完成一个返回输入日期是周几的方法
### 回答1:
您好,我可以回答这个问题。使用Java可以通过Calendar类来实现返回输入日期是周几的方法,具体实现可以参考以下代码:
```
import java.util.Calendar;
public class Weekday {
public static void main(String[] args) {
int year = 2021;
int month = 9;
int day = 15;
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, day);
int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;
String[] weekdays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
System.out.println(year + "年" + month + "月" + day + "日是" + weekdays[weekday]);
}
}
```
以上代码中,我们首先通过Calendar.getInstance()方法获取一个Calendar对象,然后通过set()方法设置年月日,接着通过get(Calendar.DAY_OF_WEEK)方法获取星期几,最后通过字符串数组获取对应的星期几名称。
### 回答2:
要实现一个返回输入日期是周几的方法,可以使用Java中的Calendar类来完成。下面是一个示例代码:
```java
import java.util.Calendar;
import java.util.Scanner;
public class WeekdayFinder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期(格式为yyyy-MM-dd):");
String dateStr = scanner.nextLine();
Calendar calendar = Calendar.getInstance();
try {
calendar.set(Calendar.YEAR, Integer.parseInt(dateStr.substring(0, 4)));
calendar.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(5, 7)) - 1);
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(8)));
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
String[] weekdays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
System.out.println(dateStr + "是" + weekdays[weekday - 1]);
} catch (Exception e) {
System.out.println("日期格式错误!");
}
}
}
```
通过上述代码,用户可以输入一个日期,并将其以yyyy-MM-dd的格式传递给程序。程序会按照输入的日期使用Calendar类设置对应的年、月和日。接着,通过Calendar类获取当前日期的星期数,从1(周日)到7(周六),然后根据数组中对应的索引找到星期几的文本表示。最后,将结果打印输出。
需要注意的是,上述代码对输入日期格式进行了简单的校验,仅检查了输入的字符串长度以及使用Integer.parseInt进行转换的过程中是否出现异常。对于更严格的日期格式验证,可以使用正则表达式或其他方法来实现。
### 回答3:
使用Java编写一个返回某个日期是星期几的方法可以使用`java.util.Calendar`和`java.text.SimpleDateFormat`两个类来实现。具体步骤如下:
1. 首先,创建一个名为`getWeekday`的方法,该方法接受一个字符串类型的日期作为参数,并返回一个表示星期几的字符串。
2. 在方法内部,使用`SimpleDateFormat`类来解析日期字符串,并将其转换为`Date`对象。代码如下:
```java
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(dateString);
```
3. 创建一个`Calendar`对象,并使用`setTime`方法将之前解析得到的`Date`对象设置为日历的日期。代码如下:
```java
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
```
4. 使用`get`方法获取星期几的值。注意,`Calendar`类中以1为星期天,2为星期一,以此类推。而我们通常使用的以0为星期天,1为星期一,所以在返回结果时需要转换一下。代码如下:
```java
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
if (weekday == Calendar.SUNDAY) {
return "星期天";
} else {
return "星期" + (weekday - 1);
}
```
5. 将以上代码整合到`getWeekday`方法中,完整代码如下:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class WeekdayUtil {
public static String getWeekday(String dateString) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(dateString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
if (weekday == Calendar.SUNDAY) {
return "星期天";
} else {
return "星期" + (weekday - 1);
}
} catch (ParseException e) {
e.printStackTrace();
return "日期格式错误";
}
}
public static void main(String[] args) {
String date = "2021-09-30";
System.out.println(getWeekday(date)); // 输出:星期四
}
}
```
使用以上方法即可得到输入日期是星期几的结果。需要注意的是,此方法默认输入的日期字符串符合"yyyy-MM-dd"的格式,否则可能会解析出错。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)