时分秒和秒相互转换

1、简介

实现将时分秒 :**格式 转化成 秒
实现将 秒 转化成 时分秒

在这里插入图片描述

2、代码结构

在这里插入图片描述

3、activity_main.xml 布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edit_sec_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="输入数字"
        android:textSize="30dp"/>

    <TextView
        android:id="@+id/text_hms_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击转化时分秒"
        android:textSize="30dp"/>

    <EditText
        android:layout_marginTop="80dp"
        android:id="@+id/edit_hms_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="01:23:45"
        android:textSize="30dp"/>

    <TextView
        android:id="@+id/edit_log_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击转化数字"
        android:textSize="30dp"/>

</LinearLayout>

4、MainActivity.java 功能文件

package com.example.tssh.mysectohms;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private String TAG  = "MainActivity: ";
    private EditText editTextOne, editTextTwo;
    private TextView textViewOne,textViewTwo;


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

        editTextOne = (EditText) findViewById(R.id.edit_sec_id);
        textViewOne = (TextView) findViewById(R.id.text_hms_id);
        textViewOne.setOnClickListener(this);
        editTextTwo = (EditText) findViewById(R.id.edit_hms_id);
        textViewTwo = (TextView) findViewById(R.id.edit_log_id);
        textViewTwo.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.text_hms_id:
                String longData = editTextOne.getText().toString();  //获取输入的数字
                secToTime(Long.parseLong(longData));// 将 miao 转化成 **:**:** 格式
                break;
            case R.id.edit_log_id:
                String strTime = editTextTwo.getText().toString();//获取时分秒 **:**:**
                formatTurnSecond(strTime);
                break;
        }
    }

    public  String secToTime(long time) {
        String timeStr = null;
        long hour = 0;
        long minute = 0;
        long second = 0;

        if (time <= 0)
            return "00:00:00";
        else {
            minute = time / 60;
            if (minute < 60) {
                second = time % 60;
            } else {
                hour = minute / 60;
                if (hour > 99)
                    return "99:59:59";
                minute = minute % 60;
                second = time - hour * 3600 - minute * 60;
            }
            timeStr = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second);
        }
        textViewOne.setText(timeStr);
        Log.i(TAG,"转化的数字是:" + time + "\n"
                + "转化后的时间格式是:" + timeStr);
        return timeStr;
    }

    public static String unitFormat(long i) {
        String retStr = null;
        if (i >= 0 && i < 10)
            retStr = "0" + Long.toString(i);
        else
            retStr = "" + i;
        return retStr;
    }


    /*
     * 将时分秒转为秒数
     * */
    public long formatTurnSecond(String time) {
        String s = time;
        int index1 = s.indexOf(":");
        int index2 = s.indexOf(":", index1 + 1);
        int hh = Integer.parseInt(s.substring(0, index1));
        int mi = Integer.parseInt(s.substring(index1 + 1, index2));
        int ss = Integer.parseInt(s.substring(index2 + 1));
        long timeSec = hh * 60 * 60 + mi * 60 + ss;

        Log.e(TAG, "传进来的时分秒:" + time + "\n" + " 转化的秒是 == " + hh * 60 * 60 + mi * 60 + ss);
        textViewTwo.setText(timeSec + "");
        return timeSec;
    }
}

5、log 展示

在这里插入图片描述

文献参考:
Java中整数(秒数)转换为时分秒格式(xx:xx:xx)
https://blog.csdn.net/zuolongsnail/article/details/8167606

Android 倒计时; 时分秒与秒数的互转
https://my.oschina.net/lijindou/blog/798710

猜你喜欢

转载自blog.csdn.net/qq_27061049/article/details/85074498