私はJavaからC#にいくつかのコードを書き直しています。残念ながら、コードの大半は「ハッキングされた」ので、コードの書き方を推測しています。今、私は挿入する必要がタイムスタンプで少し混乱しました C#でタイムスタンプを比較する
...データベースにいくつかのインサートを再現する必要があります。たとえば、現在のデータベース内のレコードは、次のとおりです。私のコードで10-AUG-10 05.02.57.347694000 PM
私は似た何かを得ることができました。このコードの22-Aug-16 11.52.20.9857574 AM
アイデアは、現在1で作成したタイムスタンプを比較することです最後の60秒以内に最初のアクションが作成された場合は、いくつかのアクションを実行します。
最初の質問:
どのように私は正確に私はすべてのレコードを持っていることがわかり、10-AUG-10 05.02.57.347694000
を再現できる「000」最後に、私がもし/他のもののために必要なのですか、最後を維持するための任意の関数がありますパート9の数字は長いですか?
2番目の質問:それは数字のみをした場合
は、私は、データベースから値を取得することができます知っているし、その後の比較が、フォーマットがあるので、:その部分をどのように扱うか本当にわからない10-AUG-10 05.02.57.347694000
、
何か提案がありますか?
SOLUTION:
私はこの問題をどうするかの理解を得たいくつかのコメントを読んだ後。私は物事をシンプルに保ち、ちょうどDateTime変数を作成し、次にそれらの2つの間に何分の違いがあるかを見るためにsubtractメソッドを使用することにしました。
例:
日時guidTimestamp。 // 8/25/2016 10:02:47 AM
DateTime currentTimestamp = DateTime.Now;
public int calculateMinutes(DateTime dt1, DateTime dt2)
{
int min = 0;
try
{
min = (int)((dt1 - dt2).TotalSeconds);
}
catch (Exception ex)
{
Debug.WriteLine("Exception - Date Time error: " + ex.Message);
}
return min;
}
このフィールドのタイプは何ですか?日付/日時でない場合はタイムスタンプではなく、ストリングです。あなたの文字列は直接比較のための "良い"形式ではないので、文字列演算の大きな/驚異的な山が残っているため、直接比較することができます。 –
日付を扱う際のC#(またはそれに関する言語)では、DateTimeオブジェクトを使用するほうがはるかに優れています。それらを比較するときは、Ticksの違いを取り、TimeSpanを作成し、TimeSpanのプロパティを使用してその差異を判断することができます。あなたのケースでは、Ticks差からTimeSpanを作成し、HoursとMinutesプロパティを見て両方が0である(これは60秒未満の差を意味する)ことを確認します。 – Kevin
http://stackoverflow.com/questions/341175/datetime-parse-and-making-it-work-with-a-specific-format文字列をDateTimesに変換する方法についてはこちら –