zoukankan      html  css  js  c++  java
  • 第几天?

    Problem Description
    给定一个日期,输出这个日期是该年的第几天。
     

     

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


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


    Sample Input
    
    
    1985/1/20 2006/3/12
     

     

    Sample Output

    20
    71
     

    正确算法:
    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);
                 */
            }
        }
    
    }
  • 相关阅读:
    iaas,paas,saas理解
    July 06th. 2018, Week 27th. Friday
    July 05th. 2018, Week 27th. Thursday
    July 04th. 2018, Week 27th. Wednesday
    July 03rd. 2018, Week 27th. Tuesday
    July 02nd. 2018, Week 27th. Monday
    July 01st. 2018, Week 27th. Sunday
    June 30th. 2018, Week 26th. Saturday
    June 29th. 2018, Week 26th. Friday
    June 28th. 2018, Week 26th. Thursday
  • 原文地址:https://www.cnblogs.com/syjp/p/10360531.html
Copyright © 2011-2022 走看看