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

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

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

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

C#

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

解決済

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

yuuwiro
yuuwiro

総合スコア8

Visual Studio Code

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

C#

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

1回答

0リアクション

0クリップ

350閲覧

投稿2022/10/01 11:34

編集2022/10/02 01:27

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

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

C#

コード ```public partial class Form1 : Form {   public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Hizuke y = new Hizuke(); int f = y.tosi(textBox1.Text,textBox2.Text,textBox3.Text); if (f == 0) label1.Text = "日曜日"; if (f == 1) label1.Text = "月曜日"; if (f == 2) label1.Text = "火曜日"; if (f == 3) label1.Text = "水曜日"; if (f == 4) label1.Text = "木曜日"; if (f == 5) label1.Text = "金曜日"; if (f == 6) label1.Text = "土曜日"; } } class Hizuke { public int tosi (String a,String b,String c) { int e; int y = int.Parse(a);//年 int m = int.Parse(b);//月 int d = int.Parse(c);//日 if (m <= 2) { m += 12; y -= 1; } e = (5 * y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d) % 7; return (e) ; } } }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

SurferOnWww

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 “のところがわからないので、お手数だとは思いますが詳しく教えていただけると有難いです。
SurferOnWww

2022/10/01 12:44

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

2022/10/01 12:46

あ、なるほど。今わかりました。 ありがとうございます。
SurferOnWww

2022/10/01 12:49

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

2022/10/01 12:51

先ほどの回答を読む前の修正でしたので、、 今修正しましたがどうでしょうか。
SurferOnWww

2022/10/01 12:52

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

2022/10/01 12:57

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

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

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

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio Code

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

C#

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