JasperSoft Studio - как лучший способ распечатать период времени (минуты) как hh: mm? [Дубликат]

44
задан lakshmi 22 March 2011 в 06:51
поделиться

15 ответов

long d1Ms=asa.getTime();   
long d2Ms=asa2.getTime();   
long minute = Math.abs((d1Ms-d2Ms)/60000);   
int Hours = (int)minute/60;     
int Minutes = (int)minute%60;     
stUr.setText(Hours+":"+Minutes); 
138
ответ дан Federico klez Culloca 24 August 2018 в 03:39
поделиться

(В Kotlin) Если вы собираетесь поместить ответ в TextView или что-то, вы можете вместо этого использовать строковый ресурс:

<string name="time">%02d:%02d</string>

И затем вы можете использовать этот ресурс String, чтобы установить текст во время выполнения, используя:

private fun setTime(time: Int) {
    val hour = time / 60
    val min = time % 60
    main_time.text = getString(R.string.time, hour, min)
}
1
ответ дан Anthony Cannon 24 August 2018 в 03:39
поделиться

tl; dr

Duration.ofMinutes( 260L )
        .toString()

PT4H20M

... или ...

LocalTime.MIN.plus( 
    Duration.ofMinutes( 260L ) 
).toString()

04:20

Duration

Классы java.time включают пару классов для представления промежутков времени. Класс Duration находится в часах-минутах-секундах, а Period - годами-месяцами.

Duration d = Duration.ofMinutes( 260L );

ISO 8601

Стандарт ISO 8601 определяет текстовые форматы для значений даты и времени. Для промежутков времени, не привязанных к временной шкале, стандартный формат - PnYnMnDTnHnMnS. P отмечает начало, а T отделяет годы-месяц-дни от часов-минут-секунд. Итак, полтора часа PT1H30M.

В классах java.time по умолчанию используются форматы ISO 8601 для разбора и генерации строк. Классы Duration и Period используют этот конкретный стандартный формат. Поэтому просто назовите toString.

String output = d.toString(); 

PT4H20M

Для альтернативного форматирования создайте собственную строку в Java 9 и более поздней версии ( not в Java 8) с помощью методов Duration::to…Part. Или см. этот ответ для использования регулярного выражения для обработки форматированной строки ISO 8601.

LocalTime

Я настоятельно рекомендую использовать стандартный формат ISO 8601 вместо чрезвычайно двусмысленный и запутанный формат часов 04:20. Но если вы настаиваете, вы можете получить этот эффект, взломав класс LocalTime . Это работает, если ваша продолжительность не превышает 24 часов.

LocalTime hackUseOfClockAsDuration = LocalTime.MIN.plus( d );
String output = hackUseOfClockAsDuration.toString();

04:20


О java.time

Рамка java.time встроена в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые классы времени legacy , такие как java.util.Date , Calendar и & amp; SimpleDateFormat .

Проект Joda-Time , теперь в режиме обслуживания , советует перейти на java.time .

Чтобы узнать больше, см. учебное пособие Oracle . И поиск Stack Overflow для многих примеров и объяснений. Спецификация JSR 310 .

Где получить классы java.time?

  • Java SE 8 и SE 9 и более поздние версии. Часть стандартного Java API с интегрированной реализацией. Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и SE 7 Большая часть функциональных возможностей java.time обратно переносится на Java 6 & amp; 7 в ThreeTen-Backport .
  • Android Проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше) специально для Android. См. Как использовать ThreeTenABP ... .

Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval , YearWeek , YearQuarter и more .

10
ответ дан Basil Bourque 24 August 2018 в 03:39
поделиться

вы забыли слово в своем ответе:

int hours = Math.floor(t / 60); 
int minutes = t % 60;

System.out.printf("%d:%02d", hours, minutes);

без него, ваш результат будет ложным в случае certains, например, например:

t = 525
hours = 8.75 

, поэтому без Math. у нас есть этот результат: 9h45 вместо 8h45.

0
ответ дан Getz 24 August 2018 в 03:39
поделиться

В Swift

func timeStringFrom(minutes:Double) -> String {
    return "\(Int(minutes/60)):\(Int(minutes) % 60)"
}
0
ответ дан iCyberPaul 24 August 2018 в 03:39
поделиться
import java.util.Scanner;
public class Time{
    public static void main(String[]args){
        int totMins=0;
        int hours=0;
        int mins=0;
    Scanner sc= new Scanner(System.in);
    System.out.println("Enter the time in mins: ");
        totMins= sc.nextInt();
        hours=(int)(totMins/60);
        mins =(int)(totMins%60);
        System.out.printf("%d:%d",hours,mins);
    }
}
0
ответ дан Janeth Fernando 24 August 2018 в 03:39
поделиться
int mHours = t / 60; //since both are ints, you get an int
int mMinutes = t % 60;
System.out.printf("%d:%02d", "" +mHours, "" +mMinutes);
0
ответ дан Jigar Patel 24 August 2018 в 03:39
поделиться

Данный ввод в секундах можно преобразовать в формат hh: mm: ss следующим образом:

int hours;
int minutes;
int seconds;
int formatHelper;

int input;


//formatHelper maximum value is 24 hours represented in seconds

formatHelper = input % (24*60*60);

//for example let's say format helper is 7500 seconds

hours = formatHelper/60*60;
minutes = formatHelper/60%60;
seconds = formatHelper%60;

//now operations above will give you result = 2hours : 5 minutes : 0 seconds;

Я использовал formatHelper, так как вход может составлять более 86 400 секунд, что составляет 24 часа.

Если вам требуется общее время ввода, представленное hh: mm: ss, вы можете просто избежать formatHelper.

Надеюсь, это поможет.

1
ответ дан LightinDarknessJava 24 August 2018 в 03:39
поделиться

Это можно сделать так

        int totalMinutesInt = Integer.valueOf(totalMinutes.toString());

        int hours = totalMinutesInt / 60;
        int hoursToDisplay = hours;

        if (hours > 12) {
            hoursToDisplay = hoursToDisplay - 12;
        }

        int minutesToDisplay = totalMinutesInt - (hours * 60);

        String minToDisplay = null;
        if(minutesToDisplay == 0 ) minToDisplay = "00";     
        else if( minutesToDisplay < 10 ) minToDisplay = "0" + minutesToDisplay ;
        else minToDisplay = "" + minutesToDisplay ;

        String displayValue = hoursToDisplay + ":" + minToDisplay;

        if (hours < 12)
            displayValue = displayValue + " AM";
        else
            displayValue = displayValue + " PM";

        return displayValue;
    } catch (Exception e) {
        LOGGER.error("Error while converting currency.");
    }
    return totalMinutes.toString();
3
ответ дан Marko 24 August 2018 в 03:39
поделиться

Используйте java.text.SimpleDateFormat для преобразования минуты в часы и минуту

SimpleDateFormat sdf = new SimpleDateFormat("mm");

try {
    Date dt = sdf.parse("90");
    sdf = new SimpleDateFormat("HH:mm");
    System.out.println(sdf.format(dt));
} catch (ParseException e) {
    e.printStackTrace();
}
5
ответ дан Nikhil Sahu 24 August 2018 в 03:39
поделиться

вычислять минуты, используя этот код:

long difference = new Date().getTime() - user.getUpdatedDate().getTime(); 
        int minutes = (int) TimeUnit.MILLISECONDS.toMinutes(difference);
0
ответ дан Pritam Panja 24 August 2018 в 03:39
поделиться

Минуты mod 60 будут давать часы с оставшимися минутами.

http://www.cafeaulait.org/course/week2/15.html

1
ответ дан Ryre 24 August 2018 в 03:39
поделиться

Я использую эту функцию для своих проектов:

 public static String minuteToTime(int minute) {
    int hour = minute / 60;
    minute %= 60;
    String p = "AM";
    if (hour >= 12) {
        hour %= 12;
        p = "PM";
    }
    if (hour == 0) {
        hour = 12;
    }
    return (hour < 10 ? "0" + hour : hour) + ":" + (minute < 10 ? "0" + minute : minute) + " " + p;
}
1
ответ дан Shohan Ahmed Sijan 24 August 2018 в 03:39
поделиться

Попробуйте этот код:

import java.util.Scanner;

public class BasicElement {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int hours;
        System.out.print("Enter the hours to convert:");
        hours =input.nextInt();
        int d=hours/24;
        int m=hours%24;
        System.out.println(d+"days"+" "+m+"hours");     

    }
}
1
ответ дан talonmies 24 August 2018 в 03:39
поделиться

Вы также можете использовать класс TimeUnit . Вы можете определить, что

private static final String FORMAT = "%02d:%02d:%02d";
может иметь такой метод, как:

public static String parseTime(long milliseconds) {
      return String.format(FORMAT,
              TimeUnit.MILLISECONDS.toHours(milliseconds),
              TimeUnit.MILLISECONDS.toMinutes(milliseconds) - TimeUnit.HOURS.toMinutes(
              TimeUnit.MILLISECONDS.toHours(milliseconds)),
              TimeUnit.MILLISECONDS.toSeconds(milliseconds) - TimeUnit.MINUTES.toSeconds(
              TimeUnit.MILLISECONDS.toMinutes(milliseconds)));
   }
11
ответ дан walters 24 August 2018 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: