• ベストアンサー

カレンダコントロールについて

vb6.0について質問です。 カレンダコントロールから日付を取得する際に、 2006年1月1日を選択した場合 monthは1、dayは1を取得してきます。 これを二桁で表示したいので(01) month = Format(Calendar1.month, "00") day = Format(Calendar1.day, "00") 上記のようにフォーマット文によって処理したのですが うまくいきません。。。 なにがいけないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

カレンダーコントロールが9.0であれば、一旦、テキストボックスに日付を代入してから変数に取り込まねば上手くいかなかったような気がします。カレンダーコントロールが10.0では、そのような不具合(?)も解消されたので... 次に示すコードのテレコが原因でしょうか? Private Sub Command1_Click()   Dim Day As String   Day = Format(Calendar1.Day, "00")   MsgBox Day End Sub Private Sub Command2_Click()   Dim Day As Integer   Day = Calendar1.Day   MsgBox Format(Day, "00") End Sub

その他の回答 (1)

回答No.1

monthやdayがString型になっていないからでは?

関連するQ&A

  • java Calendarクラス

    javaで月、日を入力してカレンダーを作成したのですが 年と月のsetでmonth-1はマジックナンバーなので直したいのですが どなたかわかる方教えてください。 package sample; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Test { private final static int firstday = 1; public static void main(String[] args) { //カレンダーのインスタンスを取得します Calendar cal = Calendar.getInstance(); //文字入力 BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); //年を取得 int year =0; //月を取得 int month =0; //最後の日付 int lastDay =0; //月初めの曜日を取得 int week =0; //年妥当性チェック boolean CheckYear = true; //月妥当性チェック boolean CheckMonth = true; try { //年妥当性チェック while(CheckYear){ System.out.println("年を入力してください"); //年を入力します year = Integer.parseInt(input.readLine()); //年が4桁の場合 if(String.valueOf(year).length()==4){ CheckYear = false; }else{ System.out.println("年は4桁で入力してください"); } } //月妥当性チェック while(CheckMonth){ System.out.println("月を入力してください"); //月を入力します month = Integer.parseInt(input.readLine()); //月が1~12の場合 if(month>=1&&month<=12){ CheckMonth = false; }else{ System.out.println("月1~12を入力してください"); } } }catch(IOException e){ System.out.println("数字以外は入力しないでください"); System.out.println("処理を中断します"); return; }catch (Exception a) { System.out.println("数字以外は入力しないでください"); System.out.println("処理を中断します"); return; } //年、月をセットします cal.set(year,month-1,cal.getActualMinimum(Calendar.DATE)); //月初めの曜日を取得 week = cal.get(Calendar.DAY_OF_WEEK); //年月を出力する System.out.println(String.valueOf(year)+"年"+String.valueOf(month)+"月"); //曜日を出力する System.out.println("日 月  火  水  木  金  土"); //最後の日付を取得する lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); /* * 最後の日付を取得する */ if(month==1||month==3||month==7||month==8||month==10||month==12) { lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); }else if(month==4||month==6||month==9||month==11){ lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); }else if(year%4==0&&month==2){ lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); }else if(year%4!=0&&month==2){ lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); } /* * カレンダーを出力する */ //最後の日付まで繰り返す // 最後の日付まで繰り返す for (int i = 1; i <= lastDay; i++) { // 1日とそれ以外で分岐する if (i == 1) { // 1日の曜日位置まで移動する for (int j = 1; j < cal.get(Calendar.DAY_OF_WEEK); j++) { System.out.print(" "); } } else { // 日付を増やす cal.add(Calendar.DAY_OF_MONTH, firstday); } // 1~9と10~で表示を変える if (i < 10) { System.out.print(" " + i); } else { System.out.print(" " + i); } // 土曜日になったら改行する if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(""); } } } }

  • like演算子内に変数って使えないんですか?

    ExcelからSQL Serverの外部取り込みを行う際に VBAの条件文の1部にWHERE(JOBTBL.BATCHID Like '12%')と書き 実行すると12から始まるデータの取得が正常に行われます。 実際には'12%'の箇所に当日日付を取得するようなものを書きたいので 変数T_DAY=format(Now,"mmdd")を入れて WHERE(JOBTBL.BATCHID Like 'T_DAY%')で実行すると エラーは出ませんが結果が表示されません。 変数を使用することは出来ないのでしょうか? その場合、当日日付4桁から始まる列を含むテーブルを取得したい場合 どのようにすればよいでしょうか? ご教授ください。

  • 和暦、西暦の変換について(VBA)

    こんにちは、VBAで西暦年から和暦年への変換でエラーが出て原因がよく分かりません。 下のようにして、変換してやろうとしてもyear1,month1,day1の型が違いますとかのエラーが出て、変数の型をInteger、String、 Variantでとろうとしてもエラーばかりです、宜しくお願いします。 もっと簡単に出来る方法があると思うのですが、よく分かりません。 曜日まで「平成○年○月○日(木)」というような表示形式にしたいのです。 year1 = Year(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) month1 = Month(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) day1 = Day(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)")) youbi1 = Right(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"), 4) - Right(Format(Calendar1_F.Value, "yyyy/m/d/(aaaa)"), 3) TextBox3.Value = "平成" + (year1 - 1988) + "年" + month1 + "月" + day1 + "日" + "(" + youbi1 + ")"

  • Calenderクラスを使うと変?

    サーブレットで現在の日付と時刻を取得しようとして、まず、日付と時刻を表示させるプログラムを書きました。 APIドキュメントで探すとDateクラスのgetDate等が推奨されていないということだったので、Calendarクラスを使いました。 すると、月の表示がおかしいのです。年と日と時間はあっているのですが、月が10月になっているのです。(ちなみに今日なので、11月になるハズ・・・) パソコンの日付と時刻も今日(11月7日、タイムゾーン(GMT+09:00)大阪、札幌、東京)です。 そこで、DATEクラスを使うとちゃんと11月になっています。 どういうことなのでしょうか? import java.util.*; class Hiduke {    public static void main(String args[]) {      System.out.println(Calendar.getInstance());      Calendar calendar = Calendar.getInstance();      System.out.println(calendar.get(Calendar.YEAR));      System.out.println(calendar.get(Calendar.MONTH));      System.out.println(calendar.get(Calendar.DAY_OF_MONTH));      Date d = new Date();      System.out.println(d);    } } java.util.GregorianCalendartime=1036634060997,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null], firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2002,MONTH=10,WEEK_OF_YEAR=45,WEEK_OF_MONTH=2, DAY_OF_MONTH=7,DAY_OF_YEAR=311,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1, AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=54,SECOND=20,MILLISECOND=997,ZONE_OFFSET=32400000,DST_OFFSET=0] 2002 10 7 Thu Nov 07 10:54:21 JST 2002

    • ベストアンサー
    • Java
  • カレンダーコントロール

    カレンダーコントロールの初期値を本日の日付に設定したいのですがどこで記入すればいいかわかりません。 calendar1.year、month、dayを利用するのでしょうか

  • Javascriptで日付毎のチェックボックスを判断する方法

    JAVAで予約できるカレンダーを作成するという課題が学校で出てしまい非常に困っています。 仕様: カレンダー関数により、年・月・日を取得しています。 Calendar cal = Calendar.getInstance(); cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DATE)); int YEAR = cal.get(Calendar.YEAR); int MONTH = cal.get(Calendar.MONTH)+1; int DATE = cal.get(Calendar.DATE); 下記の機能を”Javascript”で実現したいのですが、力不足でどうすることもできません。 実装したい機能: 予約の日付はカレンダー上にある日付毎に設置されたチェックボックスで判断します。予約できる日付は、選択した日付から前後連続した日付けのみ選択可能で、他の日付をまたいで予約することはできないようにする、というものです。 例をあげてみます。 10月10日のチェックボックスを選択したとします。選択した時点で10月の9、10、11日のみチェックボックスにチェックが可能となり、その他はdisabledにします。 次に10月11日のチェックボックスを選択すると、選択した時点で10月の9、12日が選択できるようになります。予約は連続した日付のみ可能ですので、10、11日とその他はdisabledにしなくてはなりません。 どのようなアドバイスでもかまいません。 回答をお願いします。

  • Java 日付の加算がうまくいきません。。どなたか助けてください・・・

    初歩的質問で申し訳ないのですが、ご存知の方ご教授ください。日付の加算についてどうしてもわからない箇所があります。 Calendar cal= Calendar.getInstance((TimeZone.getTimeZone("GMT"))); int year = 2007; int month = 1; int day = 1; cal.set(year,month,day); cal.add(Calendar.DAY_OF_MONTH,100); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String tempDate=sdf.format(date); tempDate=2007/05/12 私が求めている結果は tempDate=2007/4/11 なのですが、tempDate=2007/05/12になってしまいます。 お願いします。 環境:WinXp pro Eclipse 3.1 JDK 1.4.2 2007/4/11は Oracle8i の実行結果です。 select to_date('2007-01-01') +100 from dual

    • ベストアンサー
    • Java
  • ストアドでif文

    (1)ストアドでif文をしたいんですがやり方が少し分からないんでお願いします 日付の項目で空なら日付を読み込まずに処理 日付入力済みならそれを読み込んで処理したいのですが 流れとしては if文で分岐→テーブル項目全削除→追加処理(insert ,serect文で) →終了 ちなみにVBからストアドを読みこんなでAccessを開いています VBの日付はMasked Textです Datetime型 StringからDatetime型に変換できないと出ます (2)ちなみにストアドのWhere文ですが、 ・1と100を比較して100なら全取得、それ以外なら該当番号データ取得 ・日付を以降、以上で検索 もし日付が両方、未入力なら日付未選択で「ある」データを取得したい 片方未入力なら、出来ましたが、両方未入力だと思うようにデータが取れません 工場番号は確認できましたが、日付が思うように表示されないんで出来ればこれもお願いします where ('1' = '100' OR ('1' <> '100' AND 受注残.工場番号 = '1')) AND ( 受注残.受注日 >= '2004/10/01' and 受注残.受注日 <= '2006/10/01') and ('2004/10/01' <> ''2006/10/01'' )

  • getActualMaximum(Calendar.DAY_OF_MONTH) について

    こんばんは。今GUIを作成しているのですが、 Jテキストフィールドに入力した年と月をもとに、その年のその月の日数分、日付と曜日をJラベルで表示させていたのですが、昨日までは問題なく動作していたのですが、いつの間にか2月の表示が31日まで表示されるようになっていました。4月はちゃんと30日まで表示されていました。原因がよくわからないので、以下のプログラムを作成し、今年の2月が何日あるか調べてみたのですが、出力結果は31でした。 import java.util.Calendar; public class Cal{ public static void main(String[] args){ Calendar day=Calendar.getInstance(); day.set(Calendar.YEAR,2008); day.set(Calendar.MONTH,1); int niti=day.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(niti); } } 昨日まではこういったやり方で問題なくその年のその月の日数が出せたのですが、なにがおかしいのか原因がわかりません。どなたか悪い部分を教えてはいただけませんか。 こちらの環境ですが、windows vistaに、JavaSE6 Update4です。 よろしくおねがいします。

    • ベストアンサー
    • Java
  • Java CDLC 1.0 での日付計算

    CLDC(携帯向けJava)での日付計算がうまくいきません。 JavaのSEでは、Calender.addなる日付計算関数があるようですが、 CLDC(携帯向けJava)では使えないみたいなので、以下の実験コードを 書いてみました。しかし、意図する結果が得られませんでした。 このケースでのよい計算方法をご存知でしたらご教授 頂ければうれしく思います。または、 以下のプログラムのバグ、ポカアホミス、作法的要修正点、 日付計算仕様的な可能/不可能等お気づきありましたら、 ご指摘頂ければ嬉しいです。 尚、意図した結果とは、下記の★部分において、 1970年1月1日(?曜日) 0:1:0 です。 グリニッジ標準時 1970 年 1 月 1 日 0:00:00 (エポック) からの 経過時間が、60000ミリ秒(60秒) というのを期待しました。 --以下コード-- void print_cal(Calendar cal){ String WEEK=" 日月火水木金土"; int year =cal.get(Calendar.YEAR); int month =cal.get(Calendar.MONTH)+1; int day_of_month=cal.get(Calendar.DAY_OF_MONTH); int day_of_week =cal.get(Calendar.DAY_OF_WEEK); int hour =cal.get(Calendar.HOUR_OF_DAY); int minute =cal.get(Calendar.MINUTE); int second =cal.get(Calendar.SECOND); System.out.println("" + year + "/" + month + "/" + day_of_month + "(" + WEEK.charAt(day_of_week) + ") " + hour + ":" + minute + ":" + second); } Calendar cal = Calendar.getInstance(); long now = cal.getTime().getTime(); print_cal(cal); cal.set(Calendar.YEAR, 2007); cal.set(Calendar.MONTH, Calendar.MAY); cal.set(Calendar.DAY_OF_MONTH, 31); cal.set(Calendar.HOUR_OF_DAY, 6); cal.set(Calendar.MINUTE, 12); cal.set(Calendar.SECOND, 44); print_cal(cal); //<---- 2007/5/31(木) 6:12:44 long time1 = cal.getTime().getTime(); cal.set(Calendar.YEAR, 2007); cal.set(Calendar.MONTH, Calendar.MAY); cal.set(Calendar.DAY_OF_MONTH, 31); cal.set(Calendar.HOUR_OF_DAY, 6); cal.set(Calendar.MINUTE, 13); cal.set(Calendar.SECOND, 44); long time2 = cal.getTime().getTime(); print_cal(cal); //<------ 2007/5/31(木) 6:13:44 long sabun = time2 - time1; //<---- 60000 Date hoge = new Date(sabun); long hoge_time = hoge.getTime(); System.out.println(hoge_time); <--- 60000 //setTime: Calendar の現在の時刻を、指定された Date に。 cal.setTime(hoge); //★この時点でprint_cal。 print_cal(cal); <---- 1970/1/1(木) 9:1:0 ?9時間も経ってる? long now2 = cal.getTime().getTime(); System.out.println("now2: " + now2); <--- 60000。でも60秒がはいってるぽい --コード以上--

    • ベストアンサー
    • Java

専門家に質問してみよう