`
zyh2007000zyh
  • 浏览: 11828 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

增加一天的算法

    博客分类:
  • j2se
阅读更多
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整除,但不能被...

    万年历算法全集.pdf

    1. **求某个日期对应的星期**:通过输入年、月、日,算法能够计算出这一天是星期几。 2. **求某年某月有多少天**:用户指定年份和月份后,算法能准确给出这个月的总天数。 3. **输出某年的日历**:按照公历标准,...

    排课数学模型及其算法

    2. **同一天上两个不同班级两次以上**:如果一名教师在同一天给两个不同的班级上课两次以上,赋权(次数-1)。 3. **全天最后一节/第一节**:如果一名教师给某个班级的所有课程都安排在全天的最后一节(如7-8节)或第...

    返回给定日期当月的第一天、最后一天的日期

    本文将深入探讨如何在程序中返回给定日期当月的第一天和最后一天的日期,这一技能对于进行时间范围查询、数据分析、日历应用等功能的实现至关重要。 ### 核心知识点:返回给定日期当月的第一天和最后一天 #### 1. ...

    算法与分析实验一:分治与递归

    算法的时间复杂度分析显示,其主要消耗在嵌套的`for`循环中,因此总时间复杂度为`T(n)=5+4n+n^2=O(n^2)`,这表明随着选手数量的增加,算法的运行时间将以平方级增长。 实验总结指出,通过此次实验,对分治法的理解...

    算法导论 答案 第二版 算法

    ### 知识点生成 #### 算法导论答案第二版:算法 ...通过以上分析,《算法导论》第二版不仅提供了对算法的深入理解和解释,还提供了一系列实用的例子和练习来帮助读者更好地掌握算法设计的基础知识和技术。

    页面置换算法 操作系统

    CLOCK算法是一种近似LRU的算法,它通过一个简单的硬件支持来实现。每个页面都有一个访问位,表示该页面最近是否被访问过。还有一个引用位,表示自上次检查以来该页面是否被引用。在CLOCK算法中,一个时钟指针遍历...

    多目标优化算法

    - **新型占优机制**:随着多目标优化问题复杂度的增加,传统的Pareto占优机制可能不再有效,因此研究人员开发了一系列新的机制,例如ε-占优、天空线占优等。 #### 四、实验对比与分析 - **代表性算法比较**:文章...

    日期格式转换算法

    4. **闰年处理**:在累加过程中,遇到闰年时,需要额外增加一天。这里要特别注意闰年的判断。 5. **总天数计算**:最后将年份差、月份差和日数差相加,即可得到从1984年1月1日到指定日期的总天数。 在提供的源码中...

    C语言经典算法100例

    循环中,每次将原数增加一个固定的数值,然后求其平方根,并判断是否为整数。 4. 日期计算算法 判断某一天是一年中的第几天,需要考虑闰年以及各个月份的天数不同。算法中通常会使用switch语句来判断输入的月份,并...

    C语言经典算法100例(全)

    对于闰年的判断,通常是在2月份增加一天。这个程序展示了日期处理和条件判断在C语言中的应用。 这些算法实例体现了C语言在解决实际问题时的灵活性和效率。通过这样的练习,可以提升编程者的逻辑思维能力和对C语言...

    排课遗传算法

    例如,可以通过计算同一天内同一班级参加考试次数超过一次的科目数量来评估软约束的满足程度。 ##### 3. 遗传操作 - **复制算子**:通过轮盘赌选择机制,根据个体的适应值决定其被复制的概率。 - **交叉算子**:...

    遗传算法教材——附源码

    遗传算法是一种模拟自然界生物进化过程的优化方法,它在计算机科学和信息技术领域有着广泛的应用,尤其是在问题求解和复杂系统优化方面。本教材《遗传算法原理及应用》深入浅出地介绍了这一领域的核心概念和实践技巧...

    遗传算法在排课问题中的应用

    5. **所有课程都必须被安排**,但同一门课程同一天不能被安排两次,尽可能隔天排。 6. **特殊课程优先排**:例如,先排公共课,后排专业课;先排合班课,后排单班课等。 7. **体育课必须排在下午或者上午3节~4节**...

    GPS过滤算法.txt

    当GPS的速度增加到V米/秒时,实际的位置变化也会相应增大。这里提到的速度计算主要涉及到两个关键因素: 1. **速度V**:GPS接收器报告的速度值,单位通常为米/秒。 2. **位置更新频率**:即N,是指GPS接收器每秒钟...

    操作系统的cpu分配算法实践

    操作系统是计算机系统的核心组成部分,负责管理和协调硬件与软件资源,其中CPU(中央处理器)的分配算法是操作系统设计中的重要一环。在这个实验“操作系统的CPU分配算法实践”中,我们将探讨几种不同的CPU调度策略...

Global site tag (gtag.js) - Google Analytics