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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

530閲覧

【Ruby】顧客管理リストを作成し、顧客名と顧客の生年月日を出力したい

yn047

総合スコア10

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/03/31 07:09

前提・実現したいこと

Rubyで顧客管理リストを作成しています。
Customerクラスのinitializeメソッドの中で顧客の生年月日も指定できるようにしたいです。

作成にあたっての条件は下記の通りです。
・生年月日はDateクラスにてデータを保持すること。
・出力処理はCustomerクラスのdisp_infoメソッド内に追加すること。

発生している問題

①顧客の生年月日を年月日形式で表示させたいが、「yyーmmーdd」表記になってしまう。
②parseメソッド、strftimeメソッドの使い方がイメージできない。

Ruby

1 2### class Customer 3 def initialize(name) 4 @name = name 5 end 6 7 def disp_info 8 puts "顧客名:" + (@name) 9 end 10end 11 12require "date" 13class Date 14 def initialize(date) 15 @date = date 16 end 17 18 def disp_info 19 puts "生年月日:" + (@date) 20 end 21end 22 23tanaka = Customer.new('田中 太郎') 24tanaka.disp_info 25 26tanaka = Date.new('1995-08-30') 27tanaka.disp_info

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

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

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

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

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

tatsu99

2020/03/31 07:35

1995-08-30の例なら 生年月日:1995年08月30日 と表示させたいということでしょうか?
yn047

2020/04/01 06:13

ご連絡が遅くなり申し訳ございません。 上記の認識で間違い無いです。
tatsu99

2020/04/01 09:47

>・生年月日はDateクラスにてデータを保持すること。 このDateクラスは既存のもの(Rubyの組み込みライブラリ)を使うのではなく、自前で作るということなのですか。もし、そうであれば、DateクラスはすでにあるのでMyDateとかの名前にした方が良いかと思いますが、いかがでしょうか。
yn047

2020/04/03 04:43

Dateクラスは既存のもので考えておりました。表記が曖昧で申し訳ございません、
guest

回答2

0

ベストアンサー

Dateクラスは既存のもので考えておりました。

ということであれば、以下のようにしてください。

Ruby

1require "date" 2### class Customer 3class Customer 4 def initialize(name,date) 5 @name = name 6 @date = Date.parse(date) 7 end 8 9 def disp_info 10 puts "顧客名:" + (@name) 11 puts "生年月日:" + @date.strftime("%Y年%m月%d日") 12 end 13end 14 15class UserDate 16 def initialize(date) 17 @date = Date.parse(date) 18 end 19 20 def disp_info 21 puts "生年月日:" + @date.strftime("%Y年%m月%d日") 22 end 23end 24 25tanaka = Customer.new('田中 太郎','1995-08-30') 26tanaka.disp_info 27 28

実行結果
顧客名:田中 太郎
生年月日:1995年08月30日

投稿2020/04/03 04:57

編集2020/04/03 05:00
tatsu99

総合スコア5470

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

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

yn047

2020/04/07 23:24

連絡が遅くなり申し訳ございませんでした。 ご丁寧に教示いただきありがとうございます。
guest

0

rb

1parseメソッド、strftimeメソッドの使い方がイメージできない。 2とのことですので 3 4サンプルのテストプログラムを 5 6require 'date' 7 8 9time = Time.now 10 11p time 12print time.strftime("%Y年%-m月%-d日 %-H時%-M分%-S秒") 13 14#parseの使い方は下記の通りです 15date = Date.parse("2020/03/31") 16print date 17 18 19 20実行結果 212020-03-31 16:43:12 +0900 2220203311643122020-03-3 23

投稿2020/03/31 07:47

nanami12

総合スコア1015

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

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

yn047

2020/04/01 06:13

サンプルを共有いただきありがとうございます! 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問