java - 如何加减小时和分钟

标签 java android time hour minute

我有一些问题。我是一名初学者程序员。我需要使用 Android Studio 创建一个像时钟这样的应用程序,并且需要添加和减去小时和分钟。当我按下 +1H 时,需要添加 1H 才能与 +1M 和 -1M 相同,但我无法协调如何做到这一点。 我这样做是为了当时钟再次到达 23:59 时,它是 00:00,如此循环

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private Button button,button2,button3,button4;
    private TextView textView;
    int hour = 0;
    int minute = 0;
    int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);
        button4 = findViewById(R.id.button4);
        textView = findViewById(R.id.res);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                    if (hour >= 9) {
                        textView.setText((++hour + "") + ":" + "00");
                    } else {
                        textView.setText("0" + (++hour + "") + ":" + "00");
                    }

            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(hour>=9) {
                    textView.setText((--hour + "") + ":" + "00");
                }else{
                    textView.setText("0"+(--hour + "") + ":" + "00");
                }
            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(minute>=9) {
                    textView.setText("00" + ":" + (++minute + ""));
                }else{
                    textView.setText("00" + ":" + "0"+(++minute + ""));
                }
            }
        });
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(minute>=9) {
                    textView.setText("00" + ":" + (--minute + ""));
                }else{
                    textView.setText("00" + ":" + "0"+(--minute + ""));
                }
            }
        });
    }
}

最佳答案

java.time 和 ThreeTenABP

所有这些功能都已经存在。使用现代 Java 日期和时间 API java.time 中的 LocalTime。这是一个简短的演示,其输出在注释中给出:

    LocalTime time = LocalTime.of(23, 59);
    System.out.println(time); // 23:59
    time = time.minusHours(1);
    System.out.println(time); // 22:59
    time = time.minusMinutes(1);
    System.out.println(time); // 22:58
    time = time.plusHours(1);
    System.out.println(time); // 23:58
    time = time.plusMinutes(1);
    System.out.println(time); // 23:59
    time = time.plusHours(1);
    System.out.println(time); // 00:59
    time = time.plusMinutes(1);
    System.out.println(time); // 01:00

问题:我可以在 Android 上使用 java.time 吗?

是的,java.time 在旧版和新版 Android 设备上都能很好地工作。它只需要至少 Java 6

  • 在 Java 8 及更高版本以及较新的 Android 设备(从 API 级别 26 开始)中,现代 API 是内置的。
  • 在 Java 6 和 7 中获取 ThreeTen Backport,即现代类的向后移植(ThreeTen for JSR 310;请参阅底部的链接)。
  • 在(较旧的)Android 上使用 ThreeTen Backport 的 Android 版本。它被称为 ThreeTenABP。并确保使用子包从 org. Threeten.bp 导入日期和时间类。

链接

关于java - 如何加减小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56243594/

相关文章:

java - 范围 : Add Class name to Test Success

java - 尝试在Android中的RelativeLayout的末尾添加按钮

android - Mac/Windows 和 Android 之间的 WiFi-Direct 通信

java - Hive 中的 Statement.setMaxRows 与 Statement.setFetchsize 之间有什么区别

android - 单个用户可以在 Firebase 身份验证中将多个电话号码链接到他的帐户吗?

java - 领英整合

c++ - C/C++程序每X秒按键一次

mysql - 检查是否已过一年

java时区混淆。据称持有 UTC 时区的两个时间戳相差近 2 小时

java - 在调用 ElasticSearch API 之前预处理输入文本