import java.util.Scanner;
/**
* @author Jackie
* 日期加一
*/
public class DateAddOneTest {
int day;
int month;
int year;
boolean leapYear;
/*定义带有年月日的构造函数*/
DateAddOneTest(int year, int month, int day){
this.year = year;
this.month = month;
this.day = day;
}
/*判断是否为闰年*/
public boolean isLeapYear(int year){
return ((year%4 == 0 && year%100 != 0) || year%400 == 0);
}
public static void main(String[] args){
/*从控制台输入一个日期,一次输入年-回车月-回车-日回车*/
System.out.println("Please enter the year,the month and the day:");
Scanner scanner = new Scanner(System.in);
System.out.print("year:");
int year = scanner.nextInt();
System.out.print("month:");
int month = scanner.nextInt();
System.out.print("day:");
int day = scanner.nextInt();
/*取输入的“日”变量*/
/*检验是否有效 */
if(day <= 0 || day >=32)
{
System.out.println("Wrong day below or equals zero or overflow.");
//如果输入日期有错误,则退出。
System.exit(0);
}
DateAddOneTest addOne = new DateAddOneTest(year , month , day);
//得到二月
switch(month){
case 2:
//判断是否为闰年
if(addOne.isLeapYear(year) == true){
if(day < 29) day++;
else if(day == 29) { month++; day = 1; }
else {System.out.println("Day error.");}
}
else if(day < 28)
{day++;}
else if(day == 28) { month++; day = 1;}
else {System.out.println("Day error.");}
}
System.out.println(year + "年/" + month + "月/" + day + "日");
System.out.println(day + "日/" + month + "月/" + year + "年");
System.out.println(month + "月/" + day + "日/" + year + "年");
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day < 31) day++;
else if(day ==31) { month++; day = 1; }
else {System.out.println("Day error.");}
System.out.println(year + "年/" + month + "月/" + day + "日");
System.out.println(day + "日/" + month + "月/" + year + "年");
System.out.println(month + "月/" + day + "日/" + year + "年");
break;
case 4:
case 6:
case 9:
case 11:
if(day < 30) day++;
else if(day ==31) { month++; day = 1; }
else {System.out.println("Day error.");}
break;
default :
System.out.println("Input error!!!");
break;
}
}
}
分享到:
相关推荐
故事中,面对两个可能的宝藏位置,传统算法(方案1)需要4天计算确定位置,然后花费5天时间寻宝,而概率算法(方案3)则是通过投掷硬币随机决定先探索哪个位置,如果失败则转而去另一个。通过计算,我们发现即使存在...
闰年会在2月增加一天,即2月29日。 在这个"闰年算法小例"中,我们可能遇到的是一个编程任务,其目标是编写一段代码来判断给定的年份是否为闰年。以下是一个简化的闰年判断算法: 1. 如果年份能被4整除,但不能被...
1. **求某个日期对应的星期**:通过输入年、月、日,算法能够计算出这一天是星期几。 2. **求某年某月有多少天**:用户指定年份和月份后,算法能准确给出这个月的总天数。 3. **输出某年的日历**:按照公历标准,...
这意味着算法的效率会随着选手数量的平方增长而降低,即在选手数量大量增加时,算法的运行时间增长较快。 实验总结显示,通过实际操作分治法,我们不仅加深了对算法思想的理解,而且在实际问题中应用分治法的能力也...
本文将深入探讨如何在程序中返回给定日期当月的第一天和最后一天的日期,这一技能对于进行时间范围查询、数据分析、日历应用等功能的实现至关重要。 ### 核心知识点:返回给定日期当月的第一天和最后一天 #### 1. ...
### 知识点生成 #### 算法导论答案第二版:算法 ...通过以上分析,《算法导论》第二版不仅提供了对算法的深入理解和解释,还提供了一系列实用的例子和练习来帮助读者更好地掌握算法设计的基础知识和技术。
CLOCK算法是一种近似LRU的算法,它通过一个简单的硬件支持来实现。每个页面都有一个访问位,表示该页面最近是否被访问过。还有一个引用位,表示自上次检查以来该页面是否被引用。在CLOCK算法中,一个时钟指针遍历...
- **新型占优机制**:随着多目标优化问题复杂度的增加,传统的Pareto占优机制可能不再有效,因此研究人员开发了一系列新的机制,例如ε-占优、天空线占优等。 #### 四、实验对比与分析 - **代表性算法比较**:文章...
4. **闰年处理**:在累加过程中,遇到闰年时,需要额外增加一天。这里要特别注意闰年的判断。 5. **总天数计算**:最后将年份差、月份差和日数差相加,即可得到从1984年1月1日到指定日期的总天数。 在提供的源码中...
循环中,每次将原数增加一个固定的数值,然后求其平方根,并判断是否为整数。 4. 日期计算算法 判断某一天是一年中的第几天,需要考虑闰年以及各个月份的天数不同。算法中通常会使用switch语句来判断输入的月份,并...
例如,可以通过计算同一天内同一班级参加考试次数超过一次的科目数量来评估软约束的满足程度。 ##### 3. 遗传操作 - **复制算子**:通过轮盘赌选择机制,根据个体的适应值决定其被复制的概率。 - **交叉算子**:...
当GPS的速度增加到V米/秒时,实际的位置变化也会相应增大。这里提到的速度计算主要涉及到两个关键因素: 1. **速度V**:GPS接收器报告的速度值,单位通常为米/秒。 2. **位置更新频率**:即N,是指GPS接收器每秒钟...
遗传算法是一种模拟自然界生物进化过程的优化方法,它在计算机科学和信息技术领域有着广泛的应用,尤其是在问题求解和复杂系统优化方面。本教材《遗传算法原理及应用》深入浅出地介绍了这一领域的核心概念和实践技巧...
5. **所有课程都必须被安排**,但同一门课程同一天不能被安排两次,尽可能隔天排。 6. **特殊课程优先排**:例如,先排公共课,后排专业课;先排合班课,后排单班课等。 7. **体育课必须排在下午或者上午3节~4节**...
操作系统是计算机系统的核心组成部分,负责管理和协调硬件与软件资源,其中CPU(中央处理器)的分配算法是操作系统设计中的重要一环。在这个实验“操作系统的CPU分配算法实践”中,我们将探讨几种不同的CPU调度策略...
Newman的凝聚算法(Fast Greedy Community Detection)是一种迭代的局部优化方法,其基本思想是每次合并最能增加模块度的两个节点或已经合并的社区。模块度是评价社区结构好坏的重要指标,表示社区内部边的密度与...
但这种算法容易引发Belady异常,即增加分配的页面数反而导致更多的页面置换。 4. **最近未使用算法(Not Recently Used, NRU)**:NRU是基于硬件支持的简化版LRU,根据页面的访问状态(读写位)来决定优先级,但...