【算法】在控制台输入一个日期,判断这个日期是这一年的第几天?

左手的ㄟ右手 2022-12-28 09:02 368阅读 0赞
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. /**
  5. * @ClassName test
  6. * @Description 测试类
  7. * @Author asus
  8. * @Date 2020/12/15 16:02
  9. * @Version 1.0
  10. **/
  11. public class Main{
  12. /**
  13. * @return
  14. * @Description 在控制台输入一个日期,判断这个日期是这一年的第几天?
  15. * @Author guojingting
  16. * @Date 2020/12/15 16:03
  17. * @Version 1.0
  18. * @Parm
  19. **/
  20. public static void main(String[] args) throws IOException {
  21. //输入这个年份的日期
  22. BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  23. String date = bufferedReader.readLine();//例如:20201215 20200605
  24. int year = Integer.parseInt(date.substring(0, 4));
  25. //判断这个年份是否为闰年
  26. int february;//二月
  27. if (year % 4 == 0 || year % 100 == 0 || year % 400 == 0) {
  28. //如果是闰年,那么february=29,否则february=28
  29. february = 29;
  30. } else {
  31. february = 28;
  32. }
  33. //转换月份,如果月份中有0,那么把0去掉
  34. String monthStr = date.substring(4, 6);
  35. int month = 0;
  36. if (monthStr.charAt(0)=='0'){
  37. month = Integer.parseInt(monthStr.substring(0));
  38. }
  39. //转换day,如果day有0,那么把0去掉
  40. String dayStr = date.substring(6, 8);
  41. int day = 0;
  42. if (dayStr.charAt(0) == '0') {
  43. day = Integer.parseInt(dayStr.substring(0));
  44. }
  45. int sum=0;//总天数是多少 31 28/29 31 30 31 30 31 31 30 31 30 31
  46. switch (month-1){
  47. case 11:sum+=30;
  48. case 10:sum+=31;
  49. case 9:sum+=30;
  50. case 8:sum+=31;
  51. case 7:sum+=31;
  52. case 6:sum+=30;
  53. case 5:sum+=31;
  54. case 4:sum+=30;
  55. case 3:sum+=31;
  56. case 2:sum+=february;
  57. case 1:sum+=31;
  58. }
  59. sum+=day;
  60. System.out.println("年:"+year+"月:"+"天"+day);
  61. System.out.println("天数为"+sum+"天");
  62. }
  63. }

发表评论

表情:
评论列表 (有 0 条评论,368人围观)

还没有评论,来说两句吧...

相关阅读