作业要求:

定义一个名为 MyTime 的类,其中私有属性包括天数,时,分,秒;定义一个可以初始化时,分,秒的构造方法,并对初始化数值加以限定,以防出现bug;定义一个方法,可以把第几天,时,分,秒打印出来;通过定义方法可以分别对时,分,秒进行加运算,要保证天数,时,分,秒间的进制转换无误;

调试:在主方法中创建time对象,同时初始化时,分,秒;再对时,分,秒进行加运算,并将时间结果打印出来:

import java.util.*;
public class 时间管理 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请依次初始化时间:时:分:秒 (注意若初始化数值不合理,系统将默认初始化其值为0)");
int inTimeHour=s.nextInt();
int inTimeMinute=s.nextInt();
int inTimeSecond=s.nextInt();
MyTime time=new MyTime(inTimeHour,inTimeMinute,inTimeSecond);
System.out.println("快进 ? 时:");
inTimeHour=s.nextInt();
time.addHour(inTimeHour);
System.out.println("快进 ? 分:");
inTimeMinute=s.nextInt();
time.addMinute(inTimeMinute);
System.out.println("快进 ? 秒:");
inTimeSecond=s.nextInt();
time.addSecond(inTimeSecond);
time.display();
}
}
class MyTime {
protected int hour;
protected int minute;
protected int second;
protected int day;
public MyTime() {
}
public MyTime(int hour, int minute, int second) {
if(hour>=24){
setHour(0);
}
else this.hour = hour;
if(minute>=60){
setMinute(0);
}
else this.minute = minute;
if(second>=60){
setSecond(0);
}
else this.second = second;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
public void display() {
System.out.println("目前时空:"+"第"+getDay()+"天:"+getHour() + ":" + getMinute() + ":" + getSecond());
}
public void addSecond(int second) {
int sec = this.second + second;
if (sec >= 60) {
addMinute((int) (sec / 60));
setSecond(sec % 60);
} else {
setSecond(sec);
}
}
public void addMinute(int minute) {
int min = this.minute + minute;
if (min >= 60) {
addHour((int) (min / 60));
setMinute(min % 60);
} else {
setMinute(min);
}
}
public void addHour(int hour) {
int hou= this.hour + hour;
if (hou >= 24) {
addDay((int) (hou / 24));
setHour(hou % 24);
} else {
setHour(hou);
}
}
public void addDay(int day) {
setDay(day);
}
}

博主能力有限,若程序有bug或有其他不当之处,请狠狠打脸博主           (~ ̄(OO) ̄)ブ

【JAVA】编程(2)---时间管理的更多相关文章

  1. 记录这段时间java编程的小知识点

    记录这段时间java编程的小知识点 eclipse项目导入中文乱码 eclipse左侧目录结构变动 eclipse代码段左右移动 按tal键,是整体右移. 按shift  table 同时按,是整体左 ...

  2. Java编程的逻辑 (95) - Java 8的日期和时间API

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  3. Java编程的逻辑 (32) - 剖析日期和时间

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. 工作8年对技术学习过程的一些 总结 与 感悟 为什么有时迷茫、无奈 学习编程语言的最高境界最重要的是编程思想 T 字发展 学技术忌讳”什么都会“ 每天进步一点等式图 时间管理矩阵

    工作这些年对技术学习过程的一些 总结 与 感悟(一) 引言 工作了8年,一路走来总有些感触时不时的浮现在脑海中.写下来留个痕迹,也顺便给大家一点参考.希望能给初学者一点帮助. 入门 进入计算机行业,起 ...

  5. 请问在JAVA编程中什么叫耦合?什么又叫解藕? 悬赏分:0 - 解决时间:2008-3-8 12:55

    模块一的实现依赖于模块二,更改模块二后,模块一也得更改,那么二者就有耦合.修改程序,使得更改模块二后,模块一不受影响,那么就叫解藕 请问<java编程思想>中的“完全解藕”如何理解,和实现 ...

  6. Java 编程入门(词汇表)

    抽象类(abstract class):抽象类不能创建对象,主要用来创建子类.Java中的抽象类使用 abstract 修饰符定义. 抽象数据类型(abstract data type ADT):抽象 ...

  7. Java 编程要点之并发(Concurrency)详解

    计算机用户想当然地认为他们的系统在一个时间可以做多件事.他们认为,他们可以工作在一个字处理器,而其他应用程序在下载文件,管理打印队列和音频流.即使是单一的应用程序通常也是被期望在一个时间来做多件事.例 ...

  8. Java 编程:如何提高性能?(简单总结篇)

    开发者在编程中除了要有编程规范,还要注意性能,在 Java 编程中有什么提高性能的好办法呢? 本文转自国内 ITOM 行业领军企业 OneAPM Cloud Insight(一款能够优雅监控多种操作系 ...

  9. Java 编程的动态性,第 7 部分: 用 BCEL 设计字节码--转载

    在本系列的最后三篇文章中,我展示了如何用 Javassist 框架操作类.这次我将用一种很不同的方法操纵字节码——使用 Apache Byte Code Engineering Library (BC ...

随机推荐

  1. join方法个人理解

    首先抛出对join的疑问 如果我有一个a线程,一个b线程 那此时 a.start(); b.start(); a.join(); b.join(); 是否意思是a线程先执行完,然后再执行b线程; 如果 ...

  2. 使用gitlab runner进行CI(三):使用sonarqube做c++的静态检查

    目录 1. gitlab-ci.yml的配置 1.1 几个基本概念 1.2 使用CI进行代码检查demo 2. Sonarqube安装和配置 2.1 Sonarqube安装 2.2 数据库配置 2.3 ...

  3. NOIP模拟72

    T1 出了个大阴间题 解题思路 看了看数据,大概是个状压 DP,但是感觉记忆化搜索比较好写一点(然而并不是这样递归比迭代常熟大了许多..) 不难判断出来 b 的数值与合并的顺序无关于是我们可以预先处理 ...

  4. Pandas高级教程之:时间处理

    目录 简介 时间分类 Timestamp DatetimeIndex date_range 和 bdate_range origin 格式化 Period DateOffset 作为index 切片和 ...

  5. TWAIN-v2.4-说明文档翻译(1)介绍

    介绍 Introduction 一致性需求(Need for Consistency) 对于扫描仪,数字摄像仪,以及其他图像获取设备,用户渴望发现将图像合并到他们的文档以及其他工作的价值.然而,支持展 ...

  6. Firewalls文件配置防火墙

    1.源文件 /usr/lib/firewalld/services 2.文件配置 cat /etc/firewalld/zones/public.xml <?xml version=" ...

  7. Ysoserial Commons Collections2分析

    Ysoserial Commons Collections2分析 About Commons Collections2 CC2与CC1不同在于CC2用的是Commons Collections4.0; ...

  8. Java数据类型详解!Java秘诀,Java入门基础

    Java的基本数据类型算是Java学习的基础之一,经常会听到大家提起.那么你到底有没有真正理解和掌握数据类型呢? Java 语言支持的数据类型分为两种:基本数据类型和引用数据类型!本文主要针对这两大数 ...

  9. 舌头算法的C++实现

    观察生活,我们不难发现,吃饭的时候,有时候左边的东西会到右边来,这是为什么呢?就是舌头的作用了. 下面的代码将模拟舌头的运动: #include <iostream> #include & ...

  10. js--标签语法的使用

    前言 在日常开发中我们经常使用到递归.break.continue.return等语句改变程序运行的位置,其实,在 JavaScript 中还提供了标签语句,用于标记指定的代码块,便于跳转到指定的位置 ...