카운트 업 타이머 표시

Umar Ghaffar |

내 Android 앱에서 카운트 업 타이머를 yy-MM-dd h:m:s형식 으로 표시하고 싶습니다.

내가 시도한 것 : 역순으로 작동하도록 CountDownTimer를 조작 해 보았습니다. 간격을 -1000으로 변경하거나 초당 카운트 다운에 2000 밀리 초를 추가합니다. 둘 다 작동하지 않았습니다. 그런 다음 Chronometer 클래스를 사용해야한다고 생각했습니다. 표준 크로노 미터는 제가 아는 한시, 분, 초만 표시합니다. 그래서 며칠도, 몇 달도, 몇 년도 없습니다. 한 가지 더

  • 시간이 1 분 미만이면 타이머는 이와 같은 초만 표시합니다.

    00 초

  • 1 시간 미만이면 분과 초만 있으면 형식이

    00 분 00 초

  • 1 일 미만이면 시간, 분, 초만

    00 시간 00 분 00 초

  • 1 개월 미만이면 일, 시간, 분, 초만 표시합니다.

    0 일 00 시간 00 분 00 초

  • 1 년 미만이면 월, 일, 시간, 분, 초만 표시합니다.

    0 개월 0 일 00 시간 00 분 00 초

  • 1 년 이상 다음과 같이 표시되면

    0 년 0 개월 0 일 00 시간 00 분 00 초

내가 작성한 코드

  chronometer.setFormat("%s");
    chronometer.setBase(SystemClock.elapsedRealtime());
    chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        @Override
        public void onChronometerTick(Chronometer chronometer) {

            String cTextSize = chronometer.getText().toString();

           if ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 60000) {
               chronometer.setText(cTextSize.substring(3,5)+" sec");

            }
            else if (((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 60000)  &&  ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 3600000)){
                chronometer.setText(cTextSize.substring(0,2)+" mins "+cTextSize.substring(3,5)+" sec");
            }
            else if (((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 3600000)  &&  ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 86400000)){
                chronometer.setText(cTextSize.substring(0,2)+" hours "+cTextSize.substring(3,5)+" mins "+cTextSize.substring(6,8)+" sec");
            }
}

여기 코드는 시간을 표시 할 때까지 잘 실행되지만 이제 시간이 24보다 크면 25 시간이 아닌 1 일을 표시합니다.

귀하의 도움을 많이 주시면 감사하겠습니다. 답변을 모르면 부정적으로 투표하지 마십시오.

Umar Ghaffar |

도움을 주신 모든 Google 인증 개발자에게 감사드립니다. 어쨌든 이것이 내 문제를 해결 한 방법입니다.

chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        @Override
        public void onChronometerTick(Chronometer chronometer) {

            String cTextSize = chronometer.getText().toString();


            if ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 60000) {
                chronometer.setText(cTextSize.substring(3, 5) + " sec");

            } 
            else if (((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 60000) && ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 3600000)) {
                chronometer.setText(cTextSize.substring(0, 2) + " mins " + cTextSize.substring(3, 5) + " sec");
            } 
            else if (((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 3600000) && ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 86400000)) {
                if (chronometer.getText().length() == 8){
                    chronometer.setText(cTextSize.substring(0, 2) + " hours " + cTextSize.substring(3, 5) + " mins " + cTextSize.substring(6, 8) + " sec");
            }
        }
            else if(((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 86400000) && ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 2592000000L))
            {
                Toast.makeText(getActivity(), "day", Toast.LENGTH_SHORT).show();

                long dy = TimeUnit.MILLISECONDS.toDays(SystemClock.elapsedRealtime() - chronometer.getBase());
                final long hr = TimeUnit.MILLISECONDS.toHours(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(SystemClock.elapsedRealtime() - chronometer.getBase()));
                final long min = TimeUnit.MILLISECONDS.toMinutes(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(SystemClock.elapsedRealtime() - chronometer.getBase()));
                final long sec = TimeUnit.MILLISECONDS.toSeconds(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(SystemClock.elapsedRealtime() - chronometer.getBase()));
                if(dy==1) {
                    chronometer.setText(dy + " day " + hr + " hours " + min + " mins " + sec + " sec ");
                }else if(dy>1) {
                    chronometer.setText(dy + " days " + hr + " hours " + min + " mins " + sec + " sec ");
                }
                }
            else if(((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 2592000000L) && ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 31556952000L))
            {
                Toast.makeText(getActivity(), "month", Toast.LENGTH_SHORT).show();

                long dy = TimeUnit.MILLISECONDS.toDays(SystemClock.elapsedRealtime() - chronometer.getBase());
                final long mn = dy / 30;
                dy %= 30;
                final long hr = TimeUnit.MILLISECONDS.toHours(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(SystemClock.elapsedRealtime() - chronometer.getBase()));
                final long min = TimeUnit.MILLISECONDS.toMinutes(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(SystemClock.elapsedRealtime() - chronometer.getBase()));
                final long sec = TimeUnit.MILLISECONDS.toSeconds(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(SystemClock.elapsedRealtime() - chronometer.getBase()));
                    chronometer.setText(mn+" months "+dy + " days " + hr + " hours " + min + " mins " + sec + " sec ");
            }

            else if(((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 31556952000L))
            {
                Toast.makeText(getActivity(), "year", Toast.LENGTH_SHORT).show();
                long dy = TimeUnit.MILLISECONDS.toDays(SystemClock.elapsedRealtime() - chronometer.getBase());
                final long yr = dy / 365;
                dy %= 365;

                final long mn = dy / 30;
                dy %= 30;
                final long hr = TimeUnit.MILLISECONDS.toHours(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(SystemClock.elapsedRealtime() - chronometer.getBase()));
                final long min = TimeUnit.MILLISECONDS.toMinutes(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(SystemClock.elapsedRealtime() - chronometer.getBase()));
                final long sec = TimeUnit.MILLISECONDS.toSeconds(SystemClock.elapsedRealtime() - chronometer.getBase())
                        - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(SystemClock.elapsedRealtime() - chronometer.getBase()));
                    chronometer.setText(yr+" years "+mn+" months "+dy + " days " + hr + " hours " + min + " mins " + sec + " sec ");
            }

        }
    });

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

카운트 업 타이머에 분이 표시되지 않음

분류에서Dev

카운트 업 타이머 시작 지연

분류에서Dev

RxSwift-카운트 다운 타이머 시작 및 업데이트

분류에서Dev

어떻게 HH에서 카운트 다운 타이머를 표시하기 : MM : SS (영업 시간 : 분 : 초)

분류에서Dev

카운트 다운 타이머로 한 번 이상 표시되도록 팝업을 중지하는 방법

분류에서Dev

카운트 업 타이머 꾸미기

분류에서Dev

각도 2 카운트 업 타이머

분류에서Dev

매시간 카운트 다운 타이머, 30 분 표시

분류에서Dev

카운트 다운 타이머 Android에서 분과 시간을 업데이트하지 않음

분류에서Dev

카운트 다운 타이머 Android에서 분과 시간을 업데이트하지 않음

분류에서Dev

각 foreach에 카운트 다운 타이머 표시

분류에서Dev

Tkinter 카운트 다운 타이머 업데이트 활성화

분류에서Dev

주어진 시간에 웹 사이트의 카운트 업 타이머 C #, asp.net

분류에서Dev

jQuery 진행률 표시 줄 스타일 카운트 다운 타이머

분류에서Dev

타이머, 타임 코드, 시간 형식 카운트 다운

분류에서Dev

타이머 자바 스크립트 카운트 업

분류에서Dev

시간을 표시하지 않는 카운트 다운 타이머

분류에서Dev

시작 시간이 걸리는 카운트 다운 타이머

분류에서Dev

후크 카운트 다운 타이머에 0이 표시되지 않음

분류에서Dev

카운트 다운 타이머에서 카운트 다운을 표시하려면 어떻게합니까

분류에서Dev

타이머 기간 동안 카운트 업하는 Flipclock

분류에서Dev

iOS에서 카운트 업 타이머를 만드는 방법

분류에서Dev

Android 카운트 다운 타이머 다시 시작

분류에서Dev

Flutter : 분과 초를 표시하는 카운트 다운 타이머

분류에서Dev

React에서 카운트 다운 타이머를 표시하는 방법

분류에서Dev

TextView에서 카운트 다운 타이머를 어떻게 표시합니까?

분류에서Dev

카운트 다운 타이머 및 진행률 표시 줄 동기화

분류에서Dev

Tkinter로 카운트 다운 타이머 만들기 시도

분류에서Dev

카운트 다운 타이머의 시간 연장

Related 관련 기사

  1. 1

    카운트 업 타이머에 분이 표시되지 않음

  2. 2

    카운트 업 타이머 시작 지연

  3. 3

    RxSwift-카운트 다운 타이머 시작 및 업데이트

  4. 4

    어떻게 HH에서 카운트 다운 타이머를 표시하기 : MM : SS (영업 시간 : 분 : 초)

  5. 5

    카운트 다운 타이머로 한 번 이상 표시되도록 팝업을 중지하는 방법

  6. 6

    카운트 업 타이머 꾸미기

  7. 7

    각도 2 카운트 업 타이머

  8. 8

    매시간 카운트 다운 타이머, 30 분 표시

  9. 9

    카운트 다운 타이머 Android에서 분과 시간을 업데이트하지 않음

  10. 10

    카운트 다운 타이머 Android에서 분과 시간을 업데이트하지 않음

  11. 11

    각 foreach에 카운트 다운 타이머 표시

  12. 12

    Tkinter 카운트 다운 타이머 업데이트 활성화

  13. 13

    주어진 시간에 웹 사이트의 카운트 업 타이머 C #, asp.net

  14. 14

    jQuery 진행률 표시 줄 스타일 카운트 다운 타이머

  15. 15

    타이머, 타임 코드, 시간 형식 카운트 다운

  16. 16

    타이머 자바 스크립트 카운트 업

  17. 17

    시간을 표시하지 않는 카운트 다운 타이머

  18. 18

    시작 시간이 걸리는 카운트 다운 타이머

  19. 19

    후크 카운트 다운 타이머에 0이 표시되지 않음

  20. 20

    카운트 다운 타이머에서 카운트 다운을 표시하려면 어떻게합니까

  21. 21

    타이머 기간 동안 카운트 업하는 Flipclock

  22. 22

    iOS에서 카운트 업 타이머를 만드는 방법

  23. 23

    Android 카운트 다운 타이머 다시 시작

  24. 24

    Flutter : 분과 초를 표시하는 카운트 다운 타이머

  25. 25

    React에서 카운트 다운 타이머를 표시하는 방법

  26. 26

    TextView에서 카운트 다운 타이머를 어떻게 표시합니까?

  27. 27

    카운트 다운 타이머 및 진행률 표시 줄 동기화

  28. 28

    Tkinter로 카운트 다운 타이머 만들기 시도

  29. 29

    카운트 다운 타이머의 시간 연장

뜨겁다태그

보관