日付の差分計算
Javaを使用した開発をおこなった際に必要となる知識や調査した点について解説しています。注意点
String.formatを使って小数点を切り上げると四捨五入される。
doubleじゃないくてもfloatでいいかも。%fじゃなくて%lfなのか。
と思ったら違ってた(汗)
そっこうjava.lang.IllegalFormatConversionExceptionが発生しプログラムが停止します。
右の書式指定子に詳しく書いてある。
変換文字 | 説明 | 引数の型 |
---|---|---|
b,B | "true"または"false"に変換されます。nullは"false"に変換されます。 | 任意の型 |
h,H | 16進数のハッシュ値です。nullならば"null"と出力されます。 | 任意の型 |
s,S | 文字列に変換します。nullなら"null"と出力されます。 Formattableインタフェースを実装している場合はformatTo()メソッドの戻り値、 それ以外ならtoStringメソッドの戻り値です。 | 任意の型 |
c | 文字列 | java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer |
d | 十進数 | java.lang.Byte、java.lang.Short、java.lang.Integer、java.lang.Long、java.math.BigInteger |
o | 八進数 | |
x,X | 16進数 | |
e,E | 指数表示 | java.lang.Float、java.lang.Double、java.math.BigDecimal |
f | 小数 | |
g,G | 四捨五入処理後の精度および値の大きさにより、小数または指数表示 | |
a,A | 16進数の指数表示 | |
t,T | 日付と時間です。 | java.lang.Long、java.util.Calender,java.util.Date |
n | 改行します。 | なし |
ここでエラーとして補足するために注意
selectで取得した際に、日付のフォーマットが間違っている場合には、SQL上でエラーとなる。
しかし、それが何のエラーなのか分からないため、とりあえず文字列として渡す。
渡された後にjavaソース上で日付フォーマットに合致しているかどうかを判断して
データの検証をおこなう。