早教吧作业答案频道 -->其他-->
用java编写实现:输出为输入日期后一天的日期。注意边界值问题,不要有bug。函数包含三个变量:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则
题目详情
用java编写实现:输出为输入日期后一天的日期。注意边界值问题,不要有bug。
函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
▼优质解答
答案和解析
日期的判断修改了一下,日期的最大值是本月的最大天数,不是31
------------------------------------------------------------------------------------
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class T {
public static int[] dates = new int[3];
public static void main(String[] args) throws Exception {
String[] input = { "input year :", "input month :", "input day :" };
Scanner sc = new Scanner(System.in);
for (int i = 0; i < input.length; i++) {
dates[i] = input(input[i], sc, i);
}
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, dates[0]);
calendar.set(Calendar.MONTH, dates[1] - 1);
calendar.set(Calendar.DATE, dates[2] + 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.getTime()));
}
public static int input(String message, Scanner sc, int index) {
while (true) {
System.out.print(message);
String str = sc.nextLine();
try {
int result = Integer.parseInt(str);
if (index == 0 && !(result >= 1920 && result <= 2050)) {
System.out.println("1920≤year≤2050");
continue;
}
if (index == 1 && !(result >= 1 && result <= 12)) {
System.out.println("1≤month≤12");
continue;
}
if (index == 2) {
int end = endDay(dates[0], dates[1]);
if (!(result >= 1 && result <= end)) {
System.out.println("1≤day≤" + end);
continue;
}
}
return result;
} catch (Exception e) {
System.out.println("input error!");
}
}
}
public static int endDay(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DATE, 0);
return c.get(Calendar.DATE);
}
}
------------------------------------------------------------------------------------
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class T {
public static int[] dates = new int[3];
public static void main(String[] args) throws Exception {
String[] input = { "input year :", "input month :", "input day :" };
Scanner sc = new Scanner(System.in);
for (int i = 0; i < input.length; i++) {
dates[i] = input(input[i], sc, i);
}
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, dates[0]);
calendar.set(Calendar.MONTH, dates[1] - 1);
calendar.set(Calendar.DATE, dates[2] + 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.getTime()));
}
public static int input(String message, Scanner sc, int index) {
while (true) {
System.out.print(message);
String str = sc.nextLine();
try {
int result = Integer.parseInt(str);
if (index == 0 && !(result >= 1920 && result <= 2050)) {
System.out.println("1920≤year≤2050");
continue;
}
if (index == 1 && !(result >= 1 && result <= 12)) {
System.out.println("1≤month≤12");
continue;
}
if (index == 2) {
int end = endDay(dates[0], dates[1]);
if (!(result >= 1 && result <= end)) {
System.out.println("1≤day≤" + end);
continue;
}
}
return result;
} catch (Exception e) {
System.out.println("input error!");
}
}
}
public static int endDay(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DATE, 0);
return c.get(Calendar.DATE);
}
}
看了 用java编写实现:输出为输...的网友还看了以下:
下列词语的读音有两处错误的一组是()A.塑料sùliào暂时zànshí纸屑zhǐxiè胳臂gēb 2020-04-11 …
给画线字选择正确的读音。要挟(yàoyāo)给...给画线字选择正确的读音。要挟(yàoyāo)给 2020-04-22 …
向量分析和场论题求数量场u=xy²yz³在点M(2,-1,1)处得梯度及在矢量L=2i+2j-k方 2020-04-27 …
lingo程序报错sets:Flight/1..92/;Assign(Flight,Flight) 2020-05-13 …
请用“”给加粗字选择正确的读音。要挟(yāoyào)奔丧(sāngsàng)藐视(mǎomiǎo) 2020-05-14 …
看拼音,写字词。jíyùshìpàoshǒubài()祥()鞭()()岁()年jíjìxùp 2020-05-16 …
J Y I i miss you but you don't knowJ Y I miss you 2020-05-16 …
lingo求和为什么sets:data1/1..10/:x;data2/1..9/:y;endse 2020-05-17 …
设U是所有属性的集合,X,Y,Z都是U的子集,且Z=U-X-Y。下面关于多值依赖的叙述中,不正确的是 2020-05-24 …
Model:sets:first/1..3/:L;second/1..8/:x,z;third/1 2020-06-03 …