(JAVA编程练习):输入某年某月某日,判断这一天是这一年的第几天?

简介: (JAVA编程练习):输入某年某月某日,判断这一天是这一年的第几天?

目录

前言:

1、题目:

2、运行结果:

3、代码:

(1)关键解析:

(2)完整代码:



前言:

没有学习!

要军训了!苦日子要来了!


1、题目:

输入某年某月某日,判断这一天是这一年的第几天?


2、运行结果:


3、代码:

(1)关键解析:

        int sum=0; //统计总天数
    for(int i=1;i<=a2-1;i++) //因为某一月时,本月不算所以要减一
    {
      int day=0;
      switch(i)
      {
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:day=31;break; //都是31天的为一类
      case 4:
      case 6:
      case 9:
      case 11:day=30;break; //都是30天的为一类
      case 2:{
                //二月份比较特殊,需要判断是否为闰年
        if((a1%400==0) || (a1%4==0 && a1%100!=0))
        {
          day=29;break;
        }else {
          day=28;break;
        }
      }
      }
      sum+=day; //每一次循环,加一次
    }
    sum+=a3; //本月的天数直接加上


(2)完整代码:

import java.util.*;
public class exercise11 {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.print("请输入年:");
    int a1 = s.nextInt();
    System.out.print("请输入月:");
    int a2 = s.nextInt();
    System.out.print("请输入日:");
    int a3 = s.nextInt();
    int sum=0;
    for(int i=1;i<=a2-1;i++)
    {
      int day=0;
      switch(i)
      {
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:day=31;break;
      case 4:
      case 6:
      case 9:
      case 11:day=30;break;
      case 2:{
        if((a1%400==0) || (a1%4==0 && a1%100!=0))
        {
          day=29;break;
        }else {
          day=28;break;
        }
      }
      }
      sum+=day;
    }
    sum+=a3;
    System.out.println("这是这一年中第"+sum+"天");
  }
}


相关文章
|
2天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
3天前
|
安全 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第11天】在Java并发编程中,线程安全和性能优化是两个重要的主题。本文将深入探讨这两个方面,包括线程安全的基本概念,如何实现线程安全,以及如何在保证线程安全的同时进行性能优化。我们将通过实例和代码片段来说明这些概念和技术。
3 0
|
3天前
|
Java 调度
Java并发编程:深入理解线程池
【5月更文挑战第11天】本文将深入探讨Java中的线程池,包括其基本概念、工作原理以及如何使用。我们将通过实例来解释线程池的优点,如提高性能和资源利用率,以及如何避免常见的并发问题。我们还将讨论Java中线程池的实现,包括Executor框架和ThreadPoolExecutor类,并展示如何创建和管理线程池。最后,我们将讨论线程池的一些高级特性,如任务调度、线程优先级和异常处理。
|
4天前
|
缓存 Java 数据库
Java并发编程学习11-任务执行演示
【5月更文挑战第4天】本篇将结合任务执行和 Executor 框架的基础知识,演示一些不同版本的任务执行Demo,并且每个版本都实现了不同程度的并发性。
24 4
Java并发编程学习11-任务执行演示
|
4天前
|
存储 安全 Java
12条通用编程原则✨全面提升Java编码规范性、可读性及性能表现
12条通用编程原则✨全面提升Java编码规范性、可读性及性能表现
|
4天前
|
缓存 Java 程序员
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
关于创建、销毁对象⭐Java程序员需要掌握的8个编程好习惯
|
5天前
|
缓存 Java 数据库
Java并发编程中的锁优化策略
【5月更文挑战第9天】 在高负载的多线程应用中,Java并发编程的高效性至关重要。本文将探讨几种常见的锁优化技术,旨在提高Java应用程序在并发环境下的性能。我们将从基本的synchronized关键字开始,逐步深入到更高效的Lock接口实现,以及Java 6引入的java.util.concurrent包中的高级工具类。文中还会介绍读写锁(ReadWriteLock)的概念和实现原理,并通过对比分析各自的优势和适用场景,为开发者提供实用的锁优化策略。
6 0
|
5天前
|
JavaScript 小程序 Java
基于java的少儿编程网上报名系统
基于java的少儿编程网上报名系统
11 2
|
5天前
|
存储 安全 算法
掌握Java并发编程:Lock、Condition与并发集合
掌握Java并发编程:Lock、Condition与并发集合
11 0
|
5天前
|
Java 测试技术 图形学
掌握Java GUI编程基础知识
掌握Java GUI编程基础知识
8 0