質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

678閲覧

y年m月d日の曜日を表示させたいです。

yuuwiro

総合スコア8

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/10/01 11:34

編集2022/10/02 01:27

ツェラーの公式を使い、TEXTBOXに記入した日の曜日を表示させようとしています。
現在作っているものだと2000年代は正しく表示されるのですが、それ以前は間違った曜日が表示されてしまいます。
例)1894年2月2日金曜日が月曜日と表示される。

おかしな部分があればご指摘お願いいたします。
今回はVisual Studio2019でWindows フォーム アプリケーション(.NET Framework)で作成しています。
現在書いているものから大きく変えずに作りたいので、ツェラーの公式をつかったものでお願いいたします。

C#

1コード 2```public partial class Form1 : Form 3 { 4  public Form1() 5 { 6 InitializeComponent(); 7 } 8 9 private void button1_Click(object sender, EventArgs e) 10 { 11 Hizuke y = new Hizuke(); 12 int f = y.tosi(textBox1.Text,textBox2.Text,textBox3.Text); 13 14 if (f == 0) 15 label1.Text = "日曜日"; 16 if (f == 1) 17 label1.Text = "月曜日"; 18 if (f == 2) 19 label1.Text = "火曜日"; 20 if (f == 3) 21 label1.Text = "水曜日"; 22 if (f == 4) 23 label1.Text = "木曜日"; 24 if (f == 5) 25 label1.Text = "金曜日"; 26 if (f == 6) 27 label1.Text = "土曜日"; 28 } 29 } 30 class Hizuke 31 { 32 public int tosi (String a,String b,String c) 33 { 34 int e; 35 36 int y = int.Parse(a);//年 37 int m = int.Parse(b);//月 38 int d = int.Parse(c);//日 39 40 if (m <= 2) 41 { 42 m += 12; 43 y -= 1; 44 } 45 46 e = (5 * y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d) % 7; 47 return (e) ; 48 } 49 } 50 51}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/10/01 12:08

何を何で作っているかぐらいは書けませんか? (例: Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 で作っています) > ツェラーの公式を使い それが must なのですか? .NET Framework のライブラリを使って、「ツェラーの公式を使い」とかは問わないで、入力した年月日からその日の曜日が分かればいいということではないのですか?
yuuwiro

2022/10/01 12:38

コメントありがとうございます。 勉強し始めで知識不足な点が多く、ご指摘いただいたところをできる限り修正いたしました。 “Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 “のところがわからないので、お手数だとは思いますが詳しく教えていただけると有難いです。
退会済みユーザー

退会済みユーザー

2022/10/01 12:44

> “Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 “のところがわからないので、お手数だとは思いますが詳しく教えていただけると有難いです。 それが分からないと言われては・・・ Visual Studio でプロジェクトを作成するときにそのあたりの設定は自分で行っているはず。
yuuwiro

2022/10/01 12:46

あ、なるほど。今わかりました。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2022/10/01 12:49

> 今回はVisual Studio2019でオブジェクト指向の使用が条件となっています。 話が通じてますか?
yuuwiro

2022/10/01 12:51

先ほどの回答を読む前の修正でしたので、、 今修正しましたがどうでしょうか。
退会済みユーザー

退会済みユーザー

2022/10/01 12:52

「c# .net framework 曜日 取得」をキーワードにググってみてください。
yuuwiro

2022/10/01 12:57

調べてきました。 今やっていることが高校の授業課題なので、出来れば今書いているものから大きく変えずに直したいのですが難しいでしょうか。
退会済みユーザー

退会済みユーザー

2022/10/01 13:01

ツェラーの公式が must なのですか? ・・・と言う質問に対し、あなたは > ツェラーの公式は自分が使いたいと考えているだけなので必ずの使用というわけではありません。 と返事したじゃないですか。それは何だったの? もう勝手にやって
yuuwiro

2022/10/01 13:04

すいませんでした。ありがとうございました。
YAmaGNZ

2022/10/01 14:56

>それ以前は間違った曜日が表示されてしまいます。 具体的にいつを指定したらどうなるのですか? またオブジェクト指向の使用が条件と言われますが、現状はただ関数をクラスに定義しているだけでオブジェクト指向とは言えないかと思います。 せめて、クラスは日付を保持するクラスとし、年、月、日のプロパティ、曜日を得るメソッド(もしくはプロパティ)を実装するようなものになるかと思います。
yuuwiro

2022/10/01 15:37 編集

>具体的にいつを指定したらどうなるのですか? 1894年2月2日が本来金曜日のところ月曜日と表示されます。
YAmaGNZ

2022/10/02 00:00

提示されているコードを試しましたが金曜日になりました。
YAmaGNZ

2022/10/02 00:05

>クラスを作ってリターンを使用することが条件 また条件が変わりましたが、Returnを使用すると言ってもプロパティを作ってもメソッドを作っても値を返す以上普通はReturnを使用します。 課題とのことですが、計算ロジックとは別に本当に求められていることを理解しなくてはいけないかと思います。
yuuwiro

2022/10/02 01:01

お騒がせしてすみません。 パソコンの方の不具合でおかしくなっていただけみたいです。 曜日は正しく表示されました。 ありがとうございました。
guest

回答1

0

自己解決

何が原因だったのかは不明ですが、行ったことは下記に通りになります。

1、開いているページを全て落とし、再起動
2、コードは変えずに新しく作り直す。

投稿2022/10/02 01:27

編集2022/10/02 03:06
yuuwiro

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/10/02 02:19

どのように解決したかを詳しく書いてください。パソコン不調だったというなら同じ環境では何度やってもダメと思いますが、そこをどうやって解決したか。
yuuwiro

2022/10/02 02:44 編集

開いているものを全て落として再起動したら直りました。
yuuwiro

2022/10/02 02:38

あとはコードはそのままにして新しく作り直しもしました。
yuuwiro

2022/10/02 02:43

すいません、上記のは気にしないでください。
退会済みユーザー

退会済みユーザー

2022/10/02 02:55

> その後コードは変えずに新しく作り直すと直りました。 「再起動したら直りました」とか「コードは変えずに」というのは絶対間違いないですか? それで「1894年2月2日金曜日が月曜日と表示される」問題が解決するのは考えにくいのですが・・・ もし、そのあたりが 100% 明確でないなら「いろいろいじっているうちに問題が出なくなりました。何が原因だったかは不明です」という話になると思いますが。
yuuwiro

2022/10/02 03:04

行ったことはその2点のみです。しかしその他にも原因が存在しないということを完全否定はできないのでそのように修正します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問