मुझे जावा में मिनटों को घंटों और मिनटों में बदलना होगा। उदाहरण के लिए 260 को 4:20 होना चाहिए। क्या कोई मेरी मदद कर सकता है कि मैं इसे कैसे करूं।
मुझे जावा में मिनटों को घंटों और मिनटों में बदलना होगा। उदाहरण के लिए 260 को 4:20 होना चाहिए। क्या कोई मेरी मदद कर सकता है कि मैं इसे कैसे करूं।
जवाबों:
यदि आपका समय नामक चर में है t
int hours = t / 60; //since both are ints, you get an int
int minutes = t % 60;
System.out.printf("%d:%02d", hours, minutes);
यह आसान नहीं हो सकता
Duration?
tहो सकता है <0तो दूसरी पंक्ति होनी चाहिए int minutes = Math.abs(t) % 60;।
Duration.ofMinutes( 260L )
.toString()
PT4H20M
… या…
LocalTime.MIN.plus(
Duration.ofMinutes( 260L )
).toString()
4:20
DurationJava.time कक्षाओं में समय की अवधि का प्रतिनिधित्व करने के लिए कक्षाओं की एक जोड़ी शामिल है। Durationकक्षा घंटों-मिनट-सेकंड के लिए है, और Periodसाल-महीने-दिनों के लिए है।
Duration d = Duration.ofMinutes( 260L );
Duration पार्ट्सDurationकॉल करके प्रत्येक भाग तक पहुँचें to…Part। ये तरीके जावा 9 और बाद में जोड़े गए थे।
long days = d.toDaysPart() ;
int hours = d.toHoursPart() ;
int minutes = d.toMinutesPart() ;
int seconds = d.toSecondsPart() ;
int nanos = d.toNanosPart() ;
फिर आप उन हिस्सों से अपनी खुद की स्ट्रिंग को इकट्ठा कर सकते हैं।
आईएसओ 8601 मानक परिभाषित तिथि-समय मूल्यों के लिए प्रारूपों शाब्दिक। समय के अंतराल के लिए, समयरेखा के लिए अनासक्त, मानक प्रारूप है PnYnMnDTnHnMnS। Pअंक शुरुआत है, और Tअलग घंटे-मिनट-सेकंड से साल महीने दिनों। तो एक घंटा और एक आधा है PT1H30M।
Java.time कक्षाएं आईएसओ 8601 फॉर्मेट का उपयोग डिफ़ॉल्ट रूप से पार्सिंग और जेनरेटिंग स्ट्रिंग्स के लिए करती हैं। Durationऔर Periodकक्षाएं इस विशेष मानक प्रारूप का उपयोग करें। तो बस बुलाओ toString।
String output = d.toString();
PT4H20M
वैकल्पिक स्वरूपण के लिए, अपने स्वयं के स्ट्रिंग का निर्माण जावा 9 और बाद में ( जावा 8 में नहीं ) Duration::to…Partविधियों के साथ करें । या आईएसओ 8601 स्वरूपित स्ट्रिंग में हेरफेर करने के लिए रेगेक्स का उपयोग करने के लिए यह उत्तर देखें ।
LocalTimeमैं दृढ़ता से बेहद अस्पष्ट और भ्रामक घड़ी प्रारूप के बजाय मानक आईएसओ 8601 प्रारूप का उपयोग करने का सुझाव देता हूं 04:20। लेकिन अगर आप जोर देते हैं, तो आप LocalTimeकक्षा के साथ हैक करके इस प्रभाव को प्राप्त कर सकते हैं । यह काम करता है यदि आपकी अवधि 24 घंटे से अधिक नहीं है।
LocalTime hackUseOfClockAsDuration = LocalTime.MIN.plus( d );
String output = hackUseOfClockAsDuration.toString();
4:20
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date, Calendar, और SimpleDateFormat।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के लिए भविष्य के संभावित अतिरिक्त के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval, YearWeek, YearQuarter, और अधिक ।
Duration::to…Partइस उत्तर में मेरे संपादन के तरीकों को दिखाया। आप आसानी से उन हिस्सों से अपनी खुद की स्ट्रिंग को इकट्ठा कर सकते हैं।
आप TimeUnit वर्ग का भी उपयोग कर सकते हैं । आप परिभाषित कर सकते हैं
निजी स्थिर अंतिम स्ट्रिंग FORMAT = "% 02d:% 02d:% 02d";एक विधि की तरह हो सकता है:
सार्वजनिक स्थैतिक स्ट्रिंग पार्सटाइम (लंबी मिलीसेकंड) {
वापसी String.format (FORMAT,
TimeUnit.MILLISECONDS.toHours (मिलीसेकंड),
TimeUnit.MILLISECONDS.toMinutes (मिलीसेकंड) - TimeUnit.HOURS.toMinutes (
TimeUnit.MILLISECONDS.toHours (मिलीसेकंड)),
TimeUnit.MILLISECONDS.toSeconds (मिलीसेकंड) - TimeUnit.MINUTES.toSeconds (
TimeUnit.MILLISECONDS.toMinutes (मिलीसेकंड));
}
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();
}
इसे इस तरह किया जा सकता है
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();
(कोटलिन में) यदि आप उत्तर को TextView या किसी ऐसी चीज़ में डालने जा रहे हैं जिसके बजाय आप एक स्ट्रिंग संसाधन का उपयोग कर सकते हैं:
<string name="time">%02d:%02d</string>
और फिर आप इस स्ट्रिंग संसाधन का उपयोग करके पाठ को रन टाइम पर सेट कर सकते हैं:
private fun setTime(time: Int) {
val hour = time / 60
val min = time % 60
main_time.text = getString(R.string.time, hour, min)
}
मैं अपनी परियोजनाओं के लिए इस फ़ंक्शन का उपयोग करता हूं:
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;
}
यहाँ परिवर्तित एक के लिए मेरे समारोह है second, millisecondकरने के लिएday,hour,minute,second
public static String millisecondToFullTime(long millisecond) {
return timeUnitToFullTime(millisecond, TimeUnit.MILLISECONDS);
}
public static String secondToFullTime(long second) {
return timeUnitToFullTime(second, TimeUnit.SECONDS);
}
public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
long day = timeUnit.toDays(time);
long hour = timeUnit.toHours(time) % 24;
long minute = timeUnit.toMinutes(time) % 60;
long second = timeUnit.toSeconds(time) % 60;
if (day > 0) {
return String.format("%dday %02d:%02d:%02d", day, hour, minute, second);
} else if (hour > 0) {
return String.format("%d:%02d:%02d", hour, minute, second);
} else if (minute > 0) {
return String.format("%d:%02d", minute, second);
} else {
return String.format("%02d", second);
}
}
परिक्षण
public static void main(String[] args) {
System.out.println("60 => " + secondToFullTime(60));
System.out.println("101 => " + secondToFullTime(101));
System.out.println("601 => " + secondToFullTime(601));
System.out.println("7601 => " + secondToFullTime(7601));
System.out.println("36001 => " + secondToFullTime(36001));
System.out.println("86401 => " + secondToFullTime(86401));
}
उत्पादन
60 => 1:00
101 => 1:41
601 => 10:01
7601 => 2:06:41
36001 => 10:00:01
86401 => 1day 00:00:01
आशा है कि यह मदद करेगा
मिनट 60 mod मिनट शेष के साथ घंटे देता है।
इस कोड को आज़माएं:
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");
}
}
दिए गए इनपुट को सेकंड में देखते हुए आप 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;
मैंने प्रारूप हेल्पर का उपयोग किया है क्योंकि इनपुट अधिक हो सकता है फिर 86 400 सेकंड, जो कि 24 घंटे है।
यदि आप hh: mm: ss द्वारा दर्शाए गए अपने इनपुट का कुल समय चाहते हैं, तो आप प्रारूप से बच सकते हैं।
मुझे उम्मीद है यह मदद करेगा।
input7500 है, तो परिणाम 7500 घंटे, 5 मिनट और 0 सेकंड है, जो स्पष्ट रूप से गलत है। और इस सवाल में कुछ सेकंड का जिक्र नहीं था।
int mHours = t / 60; //since both are ints, you get an int
int mMinutes = t % 60;
System.out.printf("%d:%02d", "" +mHours, "" +mMinutes);
%dस्ट्रिंग मानों को स्वरूपित करने के लिए पूर्णांक प्रारूप का उपयोग क्यों कर रहे हैं "" +mHoursऔर "" +mMinutes?
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);
}
}