问题描述
- 输入一个日期,计算并输出是这一年的那一天,用Java语言回答这个问题,,,感激不尽
-
输入一个日期,计算并输出是这一年的那一天,输入一个日期,计算并输出是这一年的那一天,用Java语言回答这个问题,,,感激不尽
解决方案
public int orderDate(Date date){
int dateSum = 0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(date);
System.out.println(dateStr);
int year = Integer.valueOf(dateStr.substring(0,4));
int month = Integer.valueOf(dateStr.substring(5,7));
int day = Integer.valueOf(dateStr.substring(8,10));
for (int i = 1; i < month; i++){
switch(i){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:dateSum += 31; break;
case 4: case 6: case 9: case 11:dateSum += 30; break;
case 2:
if(((year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0))
dateSum += 29;
else dateSum += 28;
}
}
return dateSum = dateSum + day;
}
解决方案二:
public class currentDay {
public static void main(String[] args) {
int year,month,day;
int temp = 0;
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
Scanner input = new Scanner(System.in);
System.out.print("请输入年月日");
year = input.nextInt();
month = input.nextInt();
day = input.nextInt();
for (int i = 0; i < month-1; i++) {
temp +=a[i];
}
if((year%400==0||(year%4==0 &&year%100!=0))&&month>2){
System.out.println("这一天是今年的第"+(temp+1+day)+"天");
}else{
System.out.println("这一天是今年的第"+(temp+day)+"天");
}
}
}
解决方案三:
这种程序网上一大堆啊,建议还是自己动动脑筋哈
解决方案四:
Java 中的Calendar类是提供直接获取年份第几天的方法的。参考下面的代码:
/**
* 根据输入日期输出该日期所在年份的天数。
*
* @param dateStr
* 必须为2014-04-02格式
* @return 返回日期所在年份的第几天
*/
public static int printDayOfYear(String dateStr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startDate;
try {
startDate = sdf.parse(dateStr);
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate);
int index = startCalendar.get(Calendar.DAY_OF_YEAR);
System.out.println("输入的日期" + dateStr + "是这一年中的第" + index + "天。");
return index;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return -1;
}
}
解决方案五:
/**
- !!请使用jdk1.8
- *
- @author puruidong
- @version 2015-06-24
/
public class Main {
/*- 接受输入并输出该日期是当年的第多少天.
/
private static void showDate() {
System.out.println("输入一个日期,格式[yyyy-MM-dd,例如:2000-08-08]:");
Scanner sc = new Scanner(System.in);
String dates = sc.next();
try {
LocalDate d = LocalDate.parse(dates, DateTimeFormatter.ISO_LOCAL_DATE);
System.out.println("这是当年的第"+d.getDayOfYear()+"天.");
}catch(Exception e){
System.err.println("*******************************不许乱输********************************");
//e.printStackTrace();
}
}
public static void main(String[] args) {
showDate();
}
} - 接受输入并输出该日期是当年的第多少天.
解决方案六:
/**
* !!请使用jdk1.8
*
*
* @author puruidong
* @version 2015-06-24
*/
public class Main {
/**
* 接受输入并输出该日期是当年的第多少天.
*/
private static void showDate() {
System.out.println("输入一个日期,格式[yyyy-MM-dd,例如:2000-08-08]:");
Scanner sc = new Scanner(System.in);
String dates = sc.next();
try {
LocalDate d = LocalDate.parse(dates, DateTimeFormatter.ISO_LOCAL_DATE);
System.out.println("这是当年的第"+d.getDayOfYear()+"天.");
}catch(Exception e){
System.err.println("********************************不许乱输********************************");
//e.printStackTrace();
}
}
public static void main(String[] args) {
showDate();
}
}
解决方案七:
直接有calendar类使用,如果不用这个类,自己写个也毫无压力啊
时间: 2024-09-20 21:19:59