第几天?

来源:互联网 发布:软件开发前景如何 编辑:程序博客网 时间:2024/06/02 10:06
Problem Description
给定一个日期,输出这个日期是该年的第几天。
 

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
 

Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 

Sample Input
1985/1/202006/3/12
 

Sample Output

2071

解析:
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Scanner;/** * 考查对日期函数、switch的运用 */public class 第几天 {public static void main(String[] args) throws ParseException {Scanner input = new Scanner(System.in);while (input.hasNext()) {String s = input.next();String[] a = s.split("/");int y = Integer.valueOf(a[0]);int m = Integer.valueOf(a[1]);int d = Integer.valueOf(a[2]);//第一种办法SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");Calendar cal = Calendar.getInstance();cal.setTime(df.parse(s));int day = cal.get(Calendar.DAY_OF_YEAR);System.out.println(day);/*第二种办法int m2 = 0;if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {m2 = 29;} else {m2 = 28;}for (int i = 1; i < m; i++) {switch (i) {case 2:d = d + m2;break;case 4:case 6:case 9:case 11:d = d + 30;break;default:d = d + 31;}}System.out.println(d); *//**第三种办法,已过时,由于有些OJ评判系统不支持过时的方法,所以不推荐使用Date date = new Date(y - 1900, m - 1, d);SimpleDateFormat f = new SimpleDateFormat("D");String tian = f.format(date);System.out.println(tian); */}}}


0 0