答えて
NSDateクラスは、トリックを行う方法のtimeIntervalSinceDateを持っていることをすべきではないのに役立ちます願っています。
NSTimeInterval secondsBetween = [firstDate timeIntervalSinceDate:secondDate];
NSTimeIntervalは、2回の間の秒数を表す倍数です。
それから、秒を時間と分に変えるためにあなた自身の計算をしなければなりません。その後、それらの数字を文字列に変換する必要があります。それは些細なことだが、それは多くなる。私はこれを行うユーティリティクラスを作成し、それを便利にすることをお勧めします。 – TechZen
大丈夫です!今私は秒を持っているので、私は3600を分けることになります。そして、私は1546521531を得ます。 私に何かヒントを教えてもらえますか? – user134282
ここに私の迅速なソリューションです:
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"HH:mm"];
NSDate *date1 = [df dateFromString:@"14:10"];
NSDate *date2 = [df dateFromString:@"18:09"];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
int hours = (int)interval/3600; // integer division to get the hours part
int minutes = (interval - (hours*3600))/60; // interval minus hours part (in seconds) divided by 60 yields minutes
NSString *timeDiff = [NSString stringWithFormat:@"%d:%02d", hours, minutes];
ありがとう!コンパイラが私にinitWithDateFormatが存在しないというエラーを返します... – user134282
申し訳ありませんが、私はMac OS SDKでそれを書いています。 iPhone SDK用に修正されました。 – amrox
すてきなコード:)ありがとう。 – user134282
は、手でこれを計算NSCalendar
を見てする必要はありません。あなたは今NSDateComponentsとして時間と分を持っていると[components hour]
と[components minute]
などのNSIntegers
としてそれらにアクセスすることができ
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *components = [gregorianCalendar components:unitFlags
fromDate:firstDate
toDate:otherDate
options:0];
[gregorianCalendar release];
:あなたは、2つの日付の間の時間と分を取得したい場合は、このようなものを使用します。これはまた、何日もの間、閏年と他の楽しいもののために働くでしょう。
NSString *duration = [self calculateDuration:oldTime secondDate:currentTime];
- (NSString *)calculateDuration:(NSDate *)oldTime secondDate:(NSDate *)currentTime
{
NSDate *date1 = oldTime;
NSDate *date2 = currentTime;
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
int hh = secondsBetween/(60*60);
double rem = fmod(secondsBetween, (60*60));
int mm = rem/60;
rem = fmod(rem, 60);
int ss = rem;
NSString *str = [NSString stringWithFormat:@"%02d:%02d:%02d",hh,mm,ss];
return str;
}
これは私のために働く..ありがとうございました。 。 。 – iHart
- 1. 時間の2つの列の間の時間を取得するには?
- 2. 2つの日付の時間差(時間単位)を取得する方法
- 3. 2つのベクトルの間で回転するクォータニオンの取得
- 4. 2つの日付時間セル間でデータを取得
- 5. 2つの日付間の時間の取得。
- 6. ファイルブラウザを2回取得する
- 7. 2つの日付間の時間差を取得しようとする
- 8. 2時間の間に数時間を取得するにはどうすればよいですか?
- 9. 晴れのサーバーで時間/時間帯を取得する
- 10. 2つの日付の間に9時から21時までの時間を取得する方法
- 11. SQL時間のデータを取得する
- 12. Zend locale 12時間または24時間を取得する
- 13. JavaでGPS時間とTAI時間を取得するには?
- 14. PHPでWindows時間を取得する
- 15. 5時間XMLを取得する
- 16. JODAを取得する所要時間
- 17. Androidアンドロイドの2つのタイムゾーンの時間差を取得する方法は?
- 18. bigqueryの2つのタイムスタンプの差(時間単位)を取得する方法
- 19. ダガー2:コンパイルが頭痛を取得し、多くの時間後に時々
- 20. 2回の時間差を確認しますか?
- 21. ジョーダの時間、週の日を取得
- 22. ファイルの最終アクセス時間を取得
- 23. PostgreSQLクエリの実行時間を取得
- 24. ネットワークオペレータの時間(アンドロイド)をプログラムで取得
- 25. ファイルの作成時間を取得
- 26. SQLクエリで2時間ごとに平均値を取得する方法は?
- 27. C++:時間と現地時間でどのように実際の時間を取得するのですか?
- 28. アプリケーションの開始時間と終了時間を取得する方法は?
- 29. 毎回シーケンスから2つの要素を取得する
- 30. Python:前回の日時を取得する
どのように違いを提示しますか? NSString、NSNumber、int、浮動小数点数、別のNSDate? – Eimantas
をNSStringとして返します。 – user134282