作业要求:

定义一个名为 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. AT4505-[AGC029F]Construction of a tree【构造题,hall定理,网络流】

    正题 题目链接:https://www.luogu.com.cn/problem/AT4505 题目大意 给出\(n\)个点和\(n-1\)个点集\(U_i\),每个点集中选择两个点连边使得该图是一棵 ...

  2. P3760-[TJOI2017]异或和【树状数组】

    正题 题目链接:https://www.luogu.com.cn/problem/P3760 题目大意 给出\(n\)个数字的一个序列\(a\),求它所有区间和的异或和 \(n\leq 10^5,\s ...

  3. 自学 Python,视频教程和代码一看就懂,动手就废,应该这么学

    ​ 一.代码量太少了,看得多做得少,导致一做就错. 每一个测试工程师必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时 ...

  4. Kubernetes client-go Indexer / ThreadSafeStore 源码分析

    Kubernetes client-go Indexer / ThreadSafeStore 源码分析   请阅读原文:原文地址   Contents 概述 Indexer 接口 ThreadSafe ...

  5. Linux下iptables学习笔记

    Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6. ...

  6. js 改变this指向的三种方法 bind call apply

    先了解下bind call apply 的注意点 bind 需要手动调用 第一个参数 this 要指向的对象,后面是 散列的参数 call 不需要手动调用 第一个参数 this 要指向的对象,后面是 ...

  7. 【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?

    问题描述 在App Service中运行Python编写的定时任务,需要使用pymssql连接到数据库,但是发现使用 python.exe -m pip install --upgrade -r re ...

  8. 关于十二生肖的数学发现(C++)

    把数字看成是年份,然后根据生肖赋值.这里把鼠年赋值为1,牛年赋值为2,虎年赋值为3,兔年赋值为4,龙年赋值为5,蛇年赋值为6,马年赋值为7,羊年赋值为8,猴年赋值为9,鸡年赋值为10,狗年赋值为11, ...

  9. vj-2021.6.5-补题

    B - B 内容: One day, as Sherlock Holmes was tracking down one very important criminal, he found a wond ...

  10. vector 删除和插入

    删除 #include <iostream> #include <vector> using namespace std; int main() { vector<int ...