সুইফ্ট - ঘন্টা / মিনিট / সেকেন্ডে পূর্ণসংখ্যার রূপান্তর


131

আমি (কিছুটা?) মৌলিক সময় ধর্মান্তর সংক্রান্ত প্রশ্ন থাকে সুইফট

আমার একটি পূর্ণসংখ্যা রয়েছে যা আমি ঘন্টা / মিনিট / সেকেন্ডে রূপান্তর করতে চাই।

উদাহরণ: Int = 27005 আমাকে দেবে:

7 Hours  30 Minutes 5 Seconds

আমি পিএইচপিতে এটি কীভাবে করব তা জানি তবে হায়, সুইফট পিএইচপি নয় :-)

আমি কীভাবে দ্রুতগতিতে এটি অর্জন করতে পারি তার কোনও টিপস চমত্কার হবে! তুমাকে অগ্রিম ধন্যবাদ!

উত্তর:


296

নির্ধারণ করা

func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
  return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
}

ব্যবহার

> secondsToHoursMinutesSeconds(27005)
(7,30,5)

অথবা

let (h,m,s) = secondsToHoursMinutesSeconds(27005)

উপরের ফাংশনটি একবারে তিনটি মান ফেরত দিতে সুইফট টিপলগুলি ব্যবহার করে। আপনি let (var, ...)সিনট্যাক্সটি ব্যবহার করে টিপলটিকে কাঠামোগত করেন বা প্রয়োজনে স্বতন্ত্র টুপল সদস্যদের অ্যাক্সেস করতে পারেন।

আপনার যদি আসলে শব্দগুলি Hoursইত্যাদি দিয়ে মুদ্রণ করা দরকার থাকে তবে এই জাতীয় কিছু ব্যবহার করুন:

func printSecondsToHoursMinutesSeconds (seconds:Int) -> () {
  let (h, m, s) = secondsToHoursMinutesSeconds (seconds)
  print ("\(h) Hours, \(m) Minutes, \(s) Seconds")
}

উল্লেখ্য যে উপরোক্ত বাস্তবায়নটি আর্গুমেন্টগুলির secondsToHoursMinutesSeconds()জন্য কাজ Intকরে। যদি আপনি কোনও Doubleসংস্করণ চান তবে আপনাকে সিদ্ধান্ত নিতে হবে যে ফিরতি মানগুলি - কী হতে পারে (Int, Int, Double)বা হতে পারে (Double, Double, Double)। আপনি এরকম কিছু চেষ্টা করতে পারেন:

func secondsToHoursMinutesSeconds (seconds : Double) -> (Double, Double, Double) {
  let (hr,  minf) = modf (seconds / 3600)
  let (min, secf) = modf (60 * minf)
  return (hr, min, 60 * secf)
}

14
শেষ মানটি (seconds % 3600) % 60অনুকূলিত হতে পারে seconds % 60। প্রথমে ঘন্টা বের করার দরকার নেই।
জিসফট

@ গুজোনার - আমি প্রিন্টসেকেন্ডসটোহর্সমিনিটসেকেন্ডস কার্যটি সঠিকভাবে কাজ করছে বলে মনে হচ্ছে না। খেলার মাঠে এটি আমার কাছে রয়েছে তবে মুদ্রণ সেকেন্ডস টোহাউরসমিনিটসেকেন্ডস কিছু ফিরিয়ে দিচ্ছে না: ইউআইকিট ফান সেকেন্ড আমদানি করুন কয়েক ঘন্টা সেকেন্ডস (সেকেন্ড: ইনট) -> (ইনট, ইন্ট, ইনট) {রিটার্ন (সেকেন্ড / 3600, (সেকেন্ড% 3600) / 60, (সেকেন্ড % 3600)% 60)} আসুন (এইচ, এম, এস) = সেকেন্ডস টোআওয়ার্সমিনিটস সেকেন্ডস (27005) ফান্ট প্রিন্টসেকেন্ডস টুহওয়ার্সমিনিটস সেকেন্ডস (সেকেন্ড: ইনট) -> () হিট (এম, এম, এস) = সেকেন্ডস টুহাউর্সমিনিটসেকেন্ডস (সেকেন্ড) মুদ্রণ ("(এইচ ) ঘন্টা, (মি) মিনিট, সেকেন্ডস ")}
জো

printSecondstoHoursMinutesSeconds()কিছু ফেরত দেয় না ( -> ()ফাংশন ঘোষণায় রিটার্নের ধরণটি দেখুন)। ফাংশনটি কিছু প্রিন্ট করে; যা কোনও খেলার মাঠে প্রদর্শিত হয় না। আপনি যদি এটি কিছু ফিরিয়ে দিতে চান তবে একটি বলুন কলটি Stringবাদ দিন println()এবং ফাংশনের রিটার্নের ধরণটি ঠিক করুন।
GoZoner

@ গুজোনার - উপরে আপনার সিনট্যাক্সে কেবল একটি দ্রুত প্রশ্ন। আমি কীভাবে 27005 কে ভেরিয়েবলে ঘোষণা করব? দ্রুত পায়ের পাতা ভিজতে আমি এখনই একটি সরঞ্জামে কাজ করছি। আমার একটি ধ্রুবক রয়েছে যা সেকেন্ডের পরিমাণ প্রদর্শন করে (আমার মূল গণনার পরে উত্পন্ন)। আসুন কোকসেকেন্ডস = কোকমিনিটস * 60 c 27005 এর স্থানে একটি ভেরিয়েবল রাখার জন্য আমি এই কোডটি কীভাবে সামঞ্জস্য করব? আপনাকে অগ্রিম অসংখ্য ধন্যবাদ!!!
জো

আমি যে সমাধানটি দিয়েছি তা Intধরণের /এবং %ফাংশনগুলির প্রকৃতির কারণে কাজ করে। তা হ'ল /দলীয় অংশ। একই কোড এর জন্য কাজ করবে না Double। বিশেষত 2 == 13/5 তবে 2.6 == 13.0 / 5। অতএব আপনার জন্য একটি ভিন্ন বাস্তবায়ন হবে Double। আমি এই সম্পর্কে একটি নোট দিয়ে আমার উত্তর আপডেট করেছি।
GoZoner

171

ম্যাকোস 10.10+ / আইওএস 8.0+ (NS)DateComponentsFormatterএ একটি পঠনযোগ্য স্ট্রিং তৈরি করতে চালু করা হয়েছে।

এটি ব্যবহারকারীর স্থানীয় স্থানীয় ভাষাটিকে বিবেচনা করে।

let interval = 27005

let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second]
formatter.unitsStyle = .full

let formattedString = formatter.string(from: TimeInterval(interval))!
print(formattedString)

প্রাপ্তিসাধ্য ইউনিট শৈলী হয় positional, abbreviated, short, full, spellOutএবং brief

আরও তথ্যের জন্য ডকুমেন্টেশন পড়ুন


19
ব্যবহার করে formatter.unitsStyle = .positionalআমি যা চাই ঠিক তা দেয় (যা হয় 7:30:05)! সেরা উত্তর আইএমও
স্যাম

11
এবং আপনি শূন্য `` `formatter.zero FormattingBehavior = .pad` `` যোগ করতে পারেন
এডুয়ার্ডো Irias

এর বিপরীতে কীভাবে পাবেন। এভাবে কীভাবে আওয়ার,
মিনিটকে

1
@ অ্যাঞ্জেলফায়ারিস সরলভাবেhours * 3600 + minutes * 60
ভাদিয়ান

59

ভাদিয়ানের উত্তরের ভিত্তিতে আমি একটি এক্সটেনশন লিখেছিলাম Doubleযা একটি (যার TimeIntervalমধ্যে একটি প্রকারের উরফ) লাগে এবং সময় মতো ফরম্যাটেড স্ট্রিংটিকে আলাদা করে দেয়।

extension Double {
  func asString(style: DateComponentsFormatter.UnitsStyle) -> String {
    let formatter = DateComponentsFormatter()
    formatter.allowedUnits = [.hour, .minute, .second, .nanosecond]
    formatter.unitsStyle = style
    guard let formattedString = formatter.string(from: self) else { return "" }
    return formattedString
  }
}

বিভিন্ন DateComponentsFormatter.UnitsStyleবিকল্পের মতো দেখতে এখানে রয়েছে :

10000.asString(style: .positional)  // 2:46:40
10000.asString(style: .abbreviated) // 2h 46m 40s
10000.asString(style: .short)       // 2 hr, 46 min, 40 sec
10000.asString(style: .full)        // 2 hours, 46 minutes, 40 seconds
10000.asString(style: .spellOut)    // two hours, forty-six minutes, forty seconds
10000.asString(style: .brief)       // 2hr 46min 40sec

@ মাক্সিমকনিয়াজেভ সাধারণত সময়-ভিত্তিক মানগুলি সুইফটে উপস্থাপন করা Doublesহয়।
অ্যাড্রিয়ান

@ অ্যাড্রিয়ান সম্প্রসারণের জন্য আপনাকে ধন্যবাদ। আমি। পজিশনাল ইউনিট স্টাইলটি পছন্দ করি, তবে আমি "9" এর পরিবর্তে "00:09" হিসাবে 9 সেকেন্ড প্রদর্শন করতে চাই, "1:25" এর পরিবর্তে "1:25" হিসাবে 1 মিনিট 25 সেকেন্ড। আমি দ্বিগুণ মূল্যের উপর ভিত্তি করে নিজেই এই গণনাটি অর্জন করতে সক্ষম হয়েছি এবং আমি ভাবছিলাম যে এক্সটেনশনে নিজেই যুক্ত হওয়ার কোনও উপায় আছে? ধন্যবাদ.
ভেটুকা

এফওয়াইআই: আপনি যদি একক অঙ্কের মান (বা কেবলমাত্র মান 0 হয়) এর আগে 0 টি রাখতে চান তবে আপনাকে এটি যুক্ত করতে হবে formatter.zeroFormattingBehavior = .pad। এটি আমাদের দেবে:3660.asString(style: .positional) // 01:01:00
মউচেগ

27

আমি সবকিছু সহজ করার জন্য এবং সুইফট 3-এর জন্য প্রয়োজনীয় কোডের পরিমাণ হ্রাস করতে বিদ্যমান উত্তরের একটি ম্যাসআপ তৈরি করেছি ।

func hmsFrom(seconds: Int, completion: @escaping (_ hours: Int, _ minutes: Int, _ seconds: Int)->()) {

        completion(seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)

}

func getStringFrom(seconds: Int) -> String {

    return seconds < 10 ? "0\(seconds)" : "\(seconds)"
}

ব্যবহার:

var seconds: Int = 100

hmsFrom(seconds: seconds) { hours, minutes, seconds in

    let hours = getStringFrom(seconds: hours)
    let minutes = getStringFrom(seconds: minutes)
    let seconds = getStringFrom(seconds: seconds)

    print("\(hours):\(minutes):\(seconds)")                
}

ছাপে:

00:01:40


5
আমার দৃষ্টিকোণ থেকে, ক্লোজার যুক্ত করা আসলে কিছুই সহজ করে না l বন্ধ করার কোনও ভাল কারণ আছে কি?
derpoliuk

@ এরপোলিউক আমার অ্যাপ্লিকেশনটিতে আমার নির্দিষ্ট প্রয়োজনের জন্য আমার বন্ধের প্রয়োজন ছিল
ডেভিড সিক

24

এখানে আরও কাঠামোগত / নমনীয় পদ্ধতি রয়েছে: (সুইফ্ট 3)

struct StopWatch {

    var totalSeconds: Int

    var years: Int {
        return totalSeconds / 31536000
    }

    var days: Int {
        return (totalSeconds % 31536000) / 86400
    }

    var hours: Int {
        return (totalSeconds % 86400) / 3600
    }

    var minutes: Int {
        return (totalSeconds % 3600) / 60
    }

    var seconds: Int {
        return totalSeconds % 60
    }

    //simplified to what OP wanted
    var hoursMinutesAndSeconds: (hours: Int, minutes: Int, seconds: Int) {
        return (hours, minutes, seconds)
    }
}

let watch = StopWatch(totalSeconds: 27005 + 31536000 + 86400)
print(watch.years) // Prints 1
print(watch.days) // Prints 1
print(watch.hours) // Prints 7
print(watch.minutes) // Prints 30
print(watch.seconds) // Prints 5
print(watch.hoursMinutesAndSeconds) // Prints (7, 30, 5)

এরূপ দৃষ্টিভঙ্গি থাকা সুবিধার্থে এই জাতীয় পার্সিং যুক্ত করার অনুমতি দেয়:

extension StopWatch {

    var simpleTimeString: String {
        let hoursText = timeText(from: hours)
        let minutesText = timeText(from: minutes)
        let secondsText = timeText(from: seconds)
        return "\(hoursText):\(minutesText):\(secondsText)"
    }

    private func timeText(from number: Int) -> String {
        return number < 10 ? "0\(number)" : "\(number)"
    }
}
print(watch.simpleTimeString) // Prints 07:30:05

এটি লক্ষ করা উচিত যে বিশুদ্ধরূপে পূর্ণসংখ্যার ভিত্তিক পন্থাগুলি ল্যাপ ডে / সেকেন্ডকে বিবেচনায় নেয় না। ব্যবহারের ক্ষেত্রে যদি আসল তারিখ / সময়গুলির সাথে ডিল হয় তবে তারিখ এবং ক্যালেন্ডার ব্যবহার করা উচিত।


আপনি কি দয়া করে monthআপনার প্রয়োগে যুক্ত করতে পারেন ? আগাম ধন্যবাদ!
ixany

3
এরকম কোনও কিছুর জন্য আপনার এনএসক্যালেন্ডার (ক্যালেন্ডার) ব্যবহার করা উচিত।
NoLongerCribribToSE

আপনি প্রতিস্থাপন করতে পারে return number < 10 ? "0\(number)" : "\(number)"একটি স্ট্রিং ফরম্যাটার ব্যবহার করে return String(format: "%02d", number)যা স্বয়ংক্রিয়ভাবে একটি শূন্য যোগ 10 নম্বর নিচে যখন
কন্টিনিয়াম

19

সুইফ্ট 5 এ:

    var i = 9897

    func timeString(time: TimeInterval) -> String {
        let hour = Int(time) / 3600
        let minute = Int(time) / 60 % 60
        let second = Int(time) % 60

        // return formated string
        return String(format: "%02i:%02i:%02i", hour, minute, second)
    }

ফাংশন কল করতে

    timeString(time: TimeInterval(i))

02:44:57 এ ফিরে আসবে


চমত্কার! আমার যা দরকার ঠিক তাই আমি ইন্টার ভেরিয়েবলের জন্য 9897 পরিবর্তন করেছি এবং পছন্দসই ফলাফল পেয়েছি। ধন্যবাদ!
ডেভিড_2877

13

সুইফট 4

func formatSecondsToString(_ seconds: TimeInterval) -> String {
    if seconds.isNaN {
        return "00:00"
    }
    let Min = Int(seconds / 60)
    let Sec = Int(seconds.truncatingRemainder(dividingBy: 60))
    return String(format: "%02d:%02d", Min, Sec)
}

ট্র্যাঙ্কেটিংরেমেন্ডার কী? এক্সকোড এটি আমার পক্ষে চিনে না।
আলফি

10

এখানে সুইফট 3 এ আরও একটি সহজ বাস্তবায়ন is

func seconds2Timestamp(intSeconds:Int)->String {
   let mins:Int = intSeconds/60
   let hours:Int = mins/60
   let secs:Int = intSeconds%60

   let strTimestamp:String = ((hours<10) ? "0" : "") + String(hours) + ":" + ((mins<10) ? "0" : "") + String(mins) + ":" + ((secs<10) ? "0" : "") + String(secs)
   return strTimestamp
}

9

এক্সটেনশনগুলি ব্যবহার করে উপরেরটির উপর ভিত্তি করে মোটামুটি সুইডফট 3.0 সমাধান।

extension CMTime {
  var durationText:String {
    let totalSeconds = CMTimeGetSeconds(self)
    let hours:Int = Int(totalSeconds.truncatingRemainder(dividingBy: 86400) / 3600)
    let minutes:Int = Int(totalSeconds.truncatingRemainder(dividingBy: 3600) / 60)
    let seconds:Int = Int(totalSeconds.truncatingRemainder(dividingBy: 60))

    if hours > 0 {
        return String(format: "%i:%02i:%02i", hours, minutes, seconds)
    } else {
        return String(format: "%02i:%02i", minutes, seconds)
    }

  }
}

এভিপ্লেয়ারকে এ জাতীয় কল দিয়ে এটি ব্যবহার করবেন?

 let dTotalSeconds = self.player.currentTime()
 playingCurrentTime = dTotalSeconds.durationText

8

আমি অনুরূপ প্রশ্নের উত্তর দিয়েছিলাম , তবে আপনাকে ফলস্বরূপ মিলি সেকেন্ড প্রদর্শনের দরকার নেই। সুতরাং আমার সমাধানের জন্য আইওএস 10.0, টিভিএস 10.0, ওয়াচএসএস 3.0 বা ম্যাকোস 10.12 প্রয়োজন।

func convertDurationUnitValueToOtherUnits(durationValue:durationUnit:smallestUnitDuration:)আমি ইতিমধ্যে এখানে উল্লিখিত উত্তর থেকে আপনার কল করা উচিত :

let secondsToConvert = 27005
let result: [Int] = convertDurationUnitValueToOtherUnits(
    durationValue: Double(secondsToConvert),
    durationUnit: .seconds,
    smallestUnitDuration: .seconds
)
print("\(result[0]) hours, \(result[1]) minutes, \(result[2]) seconds") // 7 hours, 30 minutes, 5 seconds

5

সুইফট 5:

extension Int {

    func secondsToTime() -> String {

        let (h,m,s) = (self / 3600, (self % 3600) / 60, (self % 3600) % 60)

        let h_string = h < 10 ? "0\(h)" : "\(h)"
        let m_string =  m < 10 ? "0\(m)" : "\(m)"
        let s_string =  s < 10 ? "0\(s)" : "\(s)"

        return "\(h_string):\(m_string):\(s_string)"
    }
}

ব্যবহার:

let seconds : Int = 119
print(seconds.secondsToTime()) // Result = "00:01:59"

3

মতে GoZoner উত্তর আমি খুঁজে পাওয়ার এক্সটেনশন লিখেছিলেন আছে সময় ফর্ম্যাট ঘন্টা, মিনিট, এবং সেকেন্ডের অনুযায়ী:

extension Double {

    func secondsToHoursMinutesSeconds () -> (Int?, Int?, Int?) {
        let hrs = self / 3600
        let mins = (self.truncatingRemainder(dividingBy: 3600)) / 60
        let seconds = (self.truncatingRemainder(dividingBy:3600)).truncatingRemainder(dividingBy:60)
        return (Int(hrs) > 0 ? Int(hrs) : nil , Int(mins) > 0 ? Int(mins) : nil, Int(seconds) > 0 ? Int(seconds) : nil)
    }

    func printSecondsToHoursMinutesSeconds () -> String {

        let time = self.secondsToHoursMinutesSeconds()

        switch time {
        case (nil, let x? , let y?):
            return "\(x) min \(y) sec"
        case (nil, let x?, nil):
            return "\(x) min"
        case (let x?, nil, nil):
            return "\(x) hr"
        case (nil, nil, let x?):
            return "\(x) sec"
        case (let x?, nil, let z?):
            return "\(x) hr \(z) sec"
        case (let x?, let y?, nil):
            return "\(x) hr \(y) min"
        case (let x?, let y?, let z?):
            return "\(x) hr \(y) min \(z) sec"
        default:
            return "n/a"
        }
    }
}

let tmp = 3213123.printSecondsToHoursMinutesSeconds() // "892 hr 32 min 3 sec"

3

আমি আমার মিউজিক প্লেয়ারটির জন্য সুইফট 4+ এ যা ব্যবহার করি তা এখানে। আমি সেকেন্ড ইন্টকে পঠনযোগ্য স্ট্রিং ফর্ম্যাটে রূপান্তর করছি

extension Int {
    var toAudioString: String {
        let h = self / 3600
        let m = (self % 3600) / 60
        let s = (self % 3600) % 60
        return h > 0 ? String(format: "%1d:%02d:%02d", h, m, s) : String(format: "%1d:%02d", m, s)
    }
}

এটি ব্যবহার করুন:

print(7903.toAudioString)

আউটপুট: 2:11:43


3

@ R3dm4n এর উত্তর দুর্দান্ত ছিল। যাইহোক, আমার এটি আরও ঘন্টা প্রয়োজন। এখানে অন্য কারও খুব প্রয়োজন হলে তা হ'ল:

func formatSecondsToString(_ seconds: TimeInterval) -> String {
    if seconds.isNaN {
        return "00:00:00"
    }
    let sec = Int(seconds.truncatingRemainder(dividingBy: 60))
    let min = Int(seconds.truncatingRemainder(dividingBy: 3600) / 60)
    let hour = Int(seconds / 3600)
    return String(format: "%02d:%02d:%02d", hour, min, sec)
}

3

সর্বশেষ কোড: এক্সকোড 10.4 সুইফ্ট 5

extension Int {
    func timeDisplay() -> String {
        return "\(self / 3600):\((self % 3600) / 60):\((self % 3600) % 60)"
    }
}

2

সুইফট 5 এবং স্ট্রিং প্রতিক্রিয়া, উপস্থাপনযোগ্য ফর্ম্যাটে

public static func secondsToHoursMinutesSecondsStr (seconds : Int) -> String {
      let (hours, minutes, seconds) = secondsToHoursMinutesSeconds(seconds: seconds);
      var str = hours > 0 ? "\(hours) h" : ""
      str = minutes > 0 ? str + " \(minutes) min" : str
      str = seconds > 0 ? str + " \(seconds) sec" : str
      return str
  }

public static func secondsToHoursMinutesSeconds (seconds : Int) -> (Int, Int, Int) {
        return (seconds / 3600, (seconds % 3600) / 60, (seconds % 3600) % 60)
 }

ব্যবহার:

print(secondsToHoursMinutesSecondsStr(seconds: 20000)) // Result = "5 h 33 min 20 sec"

1

সহজ উপায় ইমো:

let hours = time / 3600
let minutes = (time / 60) % 60
let seconds = time % 60
return String(format: "%0.2d:%0.2d:%0.2d", hours, minutes, seconds)

এটি int এর ldপরিবর্তে ডাবল হতে পারে d
নিক কোভ

1

NSTimeIntervalহয় Doubleএক্সটেনশানের সঙ্গে এটা করুন। উদাহরণ:

extension Double {

    var formattedTime: String {

        var formattedTime = "0:00"

        if self > 0 {

            let hours = Int(self / 3600)
            let minutes = Int(truncatingRemainder(dividingBy: 3600) / 60)

            formattedTime = String(hours) + ":" + (minutes < 10 ? "0" + String(minutes) : String(minutes))
        }

        return formattedTime
    }
}

0

আমি এগিয়ে গিয়েছিলাম এবং এর জন্য একটি ক্লোজার তৈরি করেছি (সুইফ্ট 3 এ)।

let (m, s) = { (secs: Int) -> (Int, Int) in
        return ((secs % 3600) / 60, (secs % 3600) % 60) }(299)

এটি এম = 4 এবং এস = 59 দেবে So সুতরাং আপনি নিজের ইচ্ছামত ফর্ম্যাট করতে পারেন। আপনি অবশ্যই আরও ঘন্টা যুক্ত করতে চাইতে পারেন, যদি আরও তথ্য না হয়।


0

সুইফট 4 আমি এই এক্সটেনশনটি ব্যবহার করছি

 extension Double {

    func stringFromInterval() -> String {

        let timeInterval = Int(self)

        let millisecondsInt = Int((self.truncatingRemainder(dividingBy: 1)) * 1000)
        let secondsInt = timeInterval % 60
        let minutesInt = (timeInterval / 60) % 60
        let hoursInt = (timeInterval / 3600) % 24
        let daysInt = timeInterval / 86400

        let milliseconds = "\(millisecondsInt)ms"
        let seconds = "\(secondsInt)s" + " " + milliseconds
        let minutes = "\(minutesInt)m" + " " + seconds
        let hours = "\(hoursInt)h" + " " + minutes
        let days = "\(daysInt)d" + " " + hours

        if daysInt          > 0 { return days }
        if hoursInt         > 0 { return hours }
        if minutesInt       > 0 { return minutes }
        if secondsInt       > 0 { return seconds }
        if millisecondsInt  > 0 { return milliseconds }
        return ""
    }
}

useage

// assume myTimeInterval = 96460.397    
myTimeInteval.stringFromInterval() // 1d 2h 47m 40s 397ms

0

নীকের উত্তর সঠিক নয়।

এখানে সঠিক সংস্করণ

func seconds2Timestamp(intSeconds:Int)->String {
   let mins:Int = (intSeconds/60)%60
   let hours:Int = intSeconds/3600
   let secs:Int = intSeconds%60

   let strTimestamp:String = ((hours<10) ? "0" : "") + String(hours) + ":" + ((mins<10) ? "0" : "") + String(mins) + ":" + ((secs<10) ? "0" : "") + String(secs)
   return strTimestamp
}

0

অন্য উপায়টি সেকেন্ডে তারিখে রূপান্তরিত হবে এবং উপাদানগুলি যেমন সেকেন্ড, মিনিট এবং ঘন্টার তারিখ থেকে গ্রহণ করবে। এই সমাধানটির সীমাবদ্ধতা কেবল 23:59:59 পর্যন্ত রয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.