JAVA 输入年、月、日,输出该日期是该年的第几天

如题所述

import java.text.DateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Scanner;

public class test {
public static void main(String[] args) {
System.out.println("yyyy-mm-dd:");
Scanner sc = new Scanner(System.in);
String date = sc.next();
Calendar calendar = Calendar.getInstance();
DateFormat df = DateFormat.getDateInstance();
try {
calendar.setTime(df.parse(date));
int i = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(i);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
sc.close();
}
}
}追问

这种语法还未学到,能用switch,case语法编多一次吗?万分感谢。

追答

public static void main(String[] args) {
// TODO Auto-generated method stub
int year = 2012, lemp;
int month = 2, day = 21;
int i = 0;
switch (month) {
case 1:
i = 0;
break;
case 2:
i = 31;
break;
case 3:
i = 59;
break;
case 4:
i = 90;
break;
case 5:
i = 120;
break;
case 6:
i = 151;
break;
case 7:
i = 181;
break;
case 8:
i = 212;
break;
case 9:
i = 243;
break;
case 10:
i = 273;
break;
case 11:
i = 304;
break;
case 12:
i = 334;
break;
// default;
}
i = i + day;
if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) { // 判断是否为闰年
lemp = 1;
} else
lemp = 0;

if (lemp == 1 && month > 2) { // 如果是闰年且月份大于二,总天数应该加一
i++;
}
System.out.println("这一天是此年中的第:" + i + "天!");
}

温馨提示:答案为网友推荐,仅供参考
相似回答