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);
                 */
            }
        }
    
    }
  • 相关阅读:
    BM求递推式模板
    主席树浅谈
    DSU on Tree浅谈
    树链剖分浅谈
    省选模拟八 题解
    提答题 总结
    交互题 总结
    省选模拟七 题解
    省选模拟六 题解
    省选模拟五 题解
  • 原文地址:https://www.cnblogs.com/syjp/p/10360531.html
Copyright © 2011-2022 走看看