根据给定的文件信息,我们可以总结出以下与“日历的Java源代码”相关的知识点: ### 1. **包声明** - 在Java程序中,`package`关键字用于声明一个包名,它位于源文件的第一行(除了注释外)。在本例中,程序使用了非标准的包名`packagetest;`。实际上,包名通常采用全小写的形式,并且最好能够反映程序的功能或组织结构。 - **示例代码**: ```java package packagetest; ``` ### 2. **导入语句** - `import`语句用于引入其他包中的类或接口,使它们可以在当前文件中被使用。在本例中,程序导入了`java.util.Scanner`类,该类用于获取用户的输入。 - **示例代码**: ```java import java.util.Scanner; ``` ### 3. **公共类定义** - Java程序由一个或多个类组成。每个类都必须有一个唯一的名称。在本例中,定义了一个名为`Rr`的公共类。 - **示例代码**: ```java public class Rr { // 类体 } ``` ### 4. **主方法** - 每个可执行的Java程序都必须包含一个主方法`main`。这是程序的入口点。 - **示例代码**: ```java public static void main(String[] args) { // 主方法体 } ``` ### 5. **变量声明与初始化** - 变量用于存储数据。在本例中,程序中定义并初始化了多个整型变量,如`int sum = 0;`。 - **示例代码**: ```java int sum = 0; int year = in.nextInt(); ``` ### 6. **条件语句** - 条件语句用于基于特定条件执行不同的代码块。本例中使用了`if-else`语句来判断年份是否为闰年以及月份对应的天数。 - **示例代码**: ```java if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { sum = sum + 29; } else { sum = sum + 28; } ``` ### 7. **循环语句** - 循环语句用于重复执行一段代码。在本例中,使用了`for`循环来累加年份和月份的天数。 - **示例代码**: ```java for (int i = 1900; i < year; i++) { if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { sum = sum + 366; } else { sum = sum + 365; } } ``` ### 8. **控制台输出** - `System.out.println()`和`System.out.print()`用于向控制台输出文本。前者会在输出后换行,而后者则不会。 - **示例代码**: ```java System.out.println("请输入年份:"); int year = in.nextInt(); ``` ### 9. **闰年的判断** - 闰年是指能被4整除但不能被100整除的年份,或者能被400整除的年份。 - **示例代码**: ```java if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 是闰年 } ``` ### 10. **月份的天数** - 不同月份的天数不同。二月的天数取决于是否为闰年。 - **示例代码**: ```java if (month == 2) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { a = 29; } else { a = 28; } } ``` 这段Java源代码主要实现了用户输入指定日期后,计算该日期是自1900年1月1日以来的第几天,并据此绘制一个简单的日历表。通过上述分析,我们可以看到该程序涉及到了Java语言的基础语法、条件判断、循环控制等核心概念。
import java.util.Scanner;
public class Rr {
public static void main(String[] agrs){
int sum=0;
int a=0;
Scanner in=new Scanner(System.in);
System.out.println("请输入年份");
int year=in.nextInt();
System.out.println("请输入月份");
int month=in.nextInt();
System.out.println("请输入日期");
int day=in.nextInt();
for(int i=1900;i<year;i++)
if(i%4==0&&i%100!=0||i%400==0){
sum=sum+366;
}else {
sum=sum+365;
}
for(int i=1;i<month;i++)
if(i==2){
if(year%4==0&&year%100!=0||year%400==0)
sum=sum+29;
else
sum=sum+28;
}
else if(i==4||i==6||i==9||i==11)
sum=sum+30;
else
sum=sum+31;
- 粉丝: 3
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Hadoop的分布式数据处理系统.zip
- UML类图绘制指南.docx
- C#ASP.NET大型快运(快递)管理系统源码带完整文档数据库 SQL2008源码类型 WebForm
- (源码)基于ESP32CAM的QR码和RFID数据记录系统.zip
- (源码)基于深度学习和Flask框架的AI人脸识别系统.zip
- 苏标协议(江苏-道路运输车辆主动安全智能防控系统)
- (源码)基于Spring Boot和MyBatis Plus的秒杀系统.zip
- 数据分发服务-该服务用于将边缘端,算法特征数据,算法回传数据 进行分发,采用Flink广播+规则计算的方式进行分发
- (源码)基于ProtoCentral tinyGSR的实时生理状态监测系统.zip
- (源码)基于Arduino的吉他音符频率检测系统.zip