javaでも日付型はあるのですか?
textfieldで入力した数字が日付として
正しいものなのかを判定したいのですが。

よかったら教えてください。
よろしくお願いします。

A 回答 (2件)

 入力された文字列をSimpleDateFormatクラスのparseを使って解析し、


Date型に変換できるかどうかで判定することができます。
以下の例は、テキストフィールドに入力された文字列が、
設定されている日時形式に合致するかどうかを判定してその結果を表示するプログラムです。

import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;

class datechecker implements ActionListener {

Label FM, MG;
Button BN;
TextField TF;
static String Format = "yyyy/MM/dd kk:mm";

public datechecker() {

FM = new Label("Format : " + Format);
BN = new Button("Check");
TF = new TextField();
MG = new Label("Start");

BN.addActionListener(this);

};

public void actionPerformed(ActionEvent e) {

Date DA = null;
SimpleDateFormat DF = new SimpleDateFormat(Format);

try {
DA = DF.parse(TF.getText());
MG.setText("OK : " + (DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG)).format(DA));
} catch (Exception ex) { MG.setText("NG"); };

};

}

public class datecheck {

public static void main(String args[]) {

Frame MF = new Frame("Date Format Check");
MF.setSize(320, 120);
MF.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); };
});
MF.setLayout(new GridLayout(4, 1));
datechecker DC = new datechecker();
MF.add(DC.FM);
MF.add(DC.TF);
MF.add(DC.BN);
MF.add(DC.MG);
MF.setVisible(true);

};

}
    • good
    • 0

> javaでも日付型はあるのですか?


> textfieldで入力した数字が日付として
> 正しいものなのかを判定したいのですが。

DateFormat クラスの parse メソッドが期待するものになるでしょう。
文字列として渡した日付の表記を解釈して、正しければ、日付を表す Date クラスの
インスタンスを返します。日付とみなせなければ null を返します。

詳細は、Sun のサイトで API のマニュアルを参照できる(→参考URL)ので、
そこをご覧になって下さい。

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/api/inde …
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせてもらいます。

お礼日時:2001/11/07 11:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELにて、同一日付であれば空白にしたい

EXCELにて、同一日付であれば空白にしたい
EXCELにて、同一日付であれば空白にしたいのですが、できればVBAを使用せず実現したい。
ヒントをお願いします

Aベストアンサー

回答No2です。ダブった日付を白文字にするときにページが変わったところで空白になるのは避けたいとのことでしたらページの区切りを求める関数はありませんので、例えば1ページが49行で50行のところが次のページになるなどのことが判っていればA2セルから下方を選択してからの条件付き書式の設定で入力する式は次のようにすることでよいでしょう。

=AND(MOD(ROW(),50)<>0,A2=A1)

QjavaのCalendar型を日付型に変換したい

Calendar型の変数をフォーマット付き("yyyy/MM/dd hh:ss")に変換したいのですが上手い方法が見つかりませんでした。
初心者でも無いのですが、変換の方法があったらご教示願います。

よろしくお願いします。

Aベストアンサー

日付型はよくわかりませんが、
日付型=文字列と仮定して。

// 現在時刻を取得します。
Calendar cal=Calendar.getInstance();

// MessageFormatオブジェクトを作成(書式を設定)
MessageFormat mf = new MessageFormat("{0,date,yyyy/MM/dd HH:mm:ss}");

// CalendarオブジェクトからDate型で取り出し、Object配列として作成
Object[] objs = {Calendar.getInstance().getTime()};

// MessageFormatに、Objectを処理させる
// resultには、YYYY/MM/DD HH:MM:SS にフォーマットされた文字が代入されます。
String result = mf.format(objs);

QWORD差し込み印刷:日付の処理 - EXCELが空欄だと今日の日付が差し込まれてしまう

WORDの差し込み印刷について質問させてください。

EXCELのデータで日付を入れている列があります。この列に空欄がある(つまり日付が入力されていない)と、差し込み先のWORDのほうで、今日の日付が出てしまいます。

EXCELのデータが空欄の場合には、WORDの方に今日の日付を出さない(空欄のままにしておく)方法はありますか?

OSはWinXP, WORDとEXCELは2003を使っています。

よろしくお願いします。

Aベストアンサー

Word2002で確認したところ、質問と同じようになりました。
フィールドコードについては詳しくありませんが、消すことができました。
日付が空欄のところの差し込みフィールドでマウス右クリックしてフィールドコードの表示/非表示をクリックして表示させると
{MERGEFIELD"フィールド名"}となっていると思います。
1方法はココの”フィールド名"を削除すれば日付は表示されません。
もう一つの方法はフィールドを右クリックしてフィールドの編集を選択します。「フィールド」ダイアログボックスが現れます。
フィールドの種類から「差し込み印刷」を選択し、フィールドの名前から「If」を選択して条件式を入力する。
フィールドコードは
「If 式1 演算子 式2 Trueの場合の文字列 Falseの場合の文字列」
ここに
「If 日付のフィールド名<>"" "yyyy/mm/dd" ""」
というのを入力したところ表示されないようになりました。
日付のフィールドがブランクでない場合はyyyy/mm/dd、そうでなければブランクという条件式です
差し込みの1枚目のフィールドで条件式を入れておけば、日付空欄のところはすべて空欄にできると思います。
試しにチャレンジしてみて下さい。

Word2002で確認したところ、質問と同じようになりました。
フィールドコードについては詳しくありませんが、消すことができました。
日付が空欄のところの差し込みフィールドでマウス右クリックしてフィールドコードの表示/非表示をクリックして表示させると
{MERGEFIELD"フィールド名"}となっていると思います。
1方法はココの”フィールド名"を削除すれば日付は表示されません。
もう一つの方法はフィールドを右クリックしてフィールドの編集を選択します。「フィールド」ダイアログボックスが現れます。
...続きを読む

Qjava String型から日付型へ変換

こんにちは
現在javaのPGで日付チェックを行いたくプログラムを組んでいるのですが、色々なサイトを見ながら以下のようなものを書きました。
しかし、動かすと必ず例外にcatchされていまいます。

なぜ例外処理をされてしまうのか、原因がわかりません。
何がいけないのでしょうか??
ご教授お願いいたします。

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
//strbeginDate, strcloseDateはフォームよりString型で受け取ります。
String strbeginDate, strcloseDate;

SimpleDateFormat DatebeginDateformat = new SimpleDateFormat("YYYYMMDD");
SimpleDateFormat DatecloseDateformat = new SimpleDateFormat("YYYYMMDD");
Date datebeginDate = DatebeginDateformat.parse( strbeginDate );
Date datecloseDate = DatecloseDateformat.parse( strcloseDate );
intflag = datebeginDate.compareTo(datecloseDate);

こんにちは
現在javaのPGで日付チェックを行いたくプログラムを組んでいるのですが、色々なサイトを見ながら以下のようなものを書きました。
しかし、動かすと必ず例外にcatchされていまいます。

なぜ例外処理をされてしまうのか、原因がわかりません。
何がいけないのでしょうか??
ご教授お願いいたします。

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
//strbeginDate, strcloseDateはフォームよりString型で受け取ります。
String strbeginDat...続きを読む

Aベストアンサー

java.lang.IllegalArgumentException: Illegal pattern character 'Y'


エラーをちゃんと読みましょうね。

QExcelで日付を入力したら締日を表示させる

Excelで経費の支払いの表を作ろうとしています。

A列のセルに日付を入力し、
A列に入力した日付が1日~15日までなら
B列のセルにその月の最終日の日付を
16日~31日までなら
B列に翌月の15日と自動で表示されるようにするには
どうすればいいのでしょうか?


詳しい方、教えてください。
ちなみに使用しているExcel2010です。

Aベストアンサー

ごめ。よく読んだら半月ずれてましたな。

=IF(DAY(A1)<15,DATE(YEAR(A1),MONTH(A1)+1,1)-1,DATE(YEAR(A1),MONTH(A1)+1,15))

MONTH(A1)+1で「13月」とか出てきちゃいそうですが、Excelはちゃんと「翌年1月」と計算しなおしてくれますから大丈夫です。

Qjava.util.Date型をjava.sql.Date型に変換

java.util.Date型をjava.sql.Date型に変換ってできるのでしょうか?

Aベストアンサー

util.Date には、
1970 年 1 月 1 日グリニッジ標準時 00:00:00.000からの時間を
取得/設定する関数がありますよね?

sql.Dateは、util.Dateを継承しているので
同じ関数がありますよ。

キャストという手もありますけどね!
明示的には上の方がわかりやすいかも。

#1の方の言ってる通りなのでとりあえずヒントです。
いろいろ調べる力もプログラマには必要ですよ~!

QEXCELの日付データの比較

EXCELの日付データについての質問です。

たとえば、あるテキストデータでH20.7.19とあったとします。
それとEXCELの日付データにもH20.7.19があったとします。

テキストデータのH20.7.19をEXCEL側に貼り付け、EXCELの日付データH20.7.19と比較させ、答え0(誤差0)を返してもらう方法はありますでしょうか?

宜しくお願いいたします。

Aベストアンサー

こんにちは
DAYS360(開始日,終了日,方式)という関数で日数の差異を
求められます。

A1にテキストデータ H20.7.19
A2にエクセルデータ H20.7.19

があったとします。
=DAYS360(A1,A2)
で差異が0で返ってきます。 0じゃ無かったら別のものですね。

方式はヨーロッパ方式(TRUE)、アメリカNASD方式(FALSE)とか
書いてありましたが、違いはようわかりませんww
付けなくてもいいかとw

適当ですが、ご参考まで^^;

Qjavaで入力した数字の順番を記憶させたい

javaで、バブルソートにより、入力した数字を小さい順に並べるプログラムを作りたいです。次のようなものです。

数をいくつ入力しますか? 5
1番目の数:4
2番目の数:3
3番目の数:2
4番目の数:1
5番目の数:5


1番目の数: 1 (元4番目の数)
2番目の数: 2 (元3番目の数)
3番目の数: 3 (元2番目の数)
4番目の数: 4 (元1番目の数)
5番目の数: 5 (元5番目の数)


その際に、もともとそれが何番目に入力された数だったかということも表示させたいのですが、その方法が分かりません。
元の数字の順番を記憶させればいいのだと思うのですが、どのようにプログラムを組めばいいのでしょうか?教えてくださると嬉しいです。

ちなみに数字を小さい順に並べるプログラムは次のようになりました。
import java.util.Scanner;


public class Test {

public static void main(String args[]){

int item[]=new int [100];



int a, b, t;

int count;



Scanner sc = new Scanner(System.in);

System.out.print("数をいくつ入力しますか?");

count=sc.nextInt();

for(a=0;a<count;a++){

System.out.print(a+1+"番目の数:");



item[a]=sc.nextInt();

}



System.out.println();

for(a=1;a<count;++a)

for(b=count-1;b>=a;--b){

if(item[b-1]>item[b]){

t=item[b-1];

item[b-1]=item[b];

item[b]=t;

}

}



for(t=0;t<count;t++)

System.out.println(t+1+"番目の数:"+item[t]);





}

}

javaで、バブルソートにより、入力した数字を小さい順に並べるプログラムを作りたいです。次のようなものです。

数をいくつ入力しますか? 5
1番目の数:4
2番目の数:3
3番目の数:2
4番目の数:1
5番目の数:5


1番目の数: 1 (元4番目の数)
2番目の数: 2 (元3番目の数)
3番目の数: 3 (元2番目の数)
4番目の数: 4 (元1番目の数)
5番目の数: 5 (元5番目の数)


その際に、もともとそれが何番目に入力された数だったかということも表示させたいのですが、その方法が分かりません。
元の数字の順番...続きを読む

Aベストアンサー

class 覚えるためのクラス{
int 元の順番;
int 入力した数値;
}
みたいな元の入力順番と、入力した数値を記憶するクラスを定義して、それをソートする

Qexcel,word 印刷した日の日付

excel,word文書を印刷したとき、その印刷日の日付を印字させるためにはexcel,word各々
どのようなことをすればよかったでしょうか。

Aベストアンサー

<Excelでの編集方法>
 メニューの「ファイル」-「ページ設定」で
 「ヘッダー/フッター」タブを選択。
 上に表示したい場合は「ヘッダーの編集」ボタン。

 編集画面の上に「日付の挿入」ボタン(カレンダーみたいなボタン)があるので
 それを押せば日付入力できます

<Wordでの編集方法>
 メニューの「表示」-「ヘッダー/フッター」を選択すると
 ヘッダーとフッターが点線で囲まれます。
 お好きなほうを選択し「日付の挿入」ボタンを押せば表示されるようになりますよ。

QDBから取得した日付型とGregorianCalendarで取得した現在の日付の差

現在DBから取得した日付型の値、例えば
2005-11-25 00:00:00

GregorianCalendarで取得した現在の日付
2005-11-6
の差、この例でいうと19日の差。この19を求めたいと思っているのですが、初めての試みのためなかなかいいアイデアが浮かびません。

何かよい方法がありましたらレスおねがいします。

Aベストアンサー

DBから取得した日付もCalendarに変換してget(Calendar.DAY_OF_YEAR)で年始からの日数を求め、それらの差を求めれるのはどうでしょう?
年が違えばそれらの処理も必要ですが・・・

時、分、秒も計算に入れるのなら#1さんが書いたようにミリ秒に変換して引き算した方が良いでしょう。


人気Q&Aランキング

おすすめ情報