日付のうるう年か確認する

実際のプログラム

①判定はオブジェクト指向でメソッド(yearJudge)を作成する。

②ScannerやDateTimeFormatterをimportして実装

 

---------------プログラムはここから-------------------

package test_20250804;
 
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
 
/*
 * //入力された整数がグレゴリオ暦でうるう年であるか判定するプログラムを書いてください。
 * //閏年判定の条件
 * //西暦が4で割り切れる年は閏年
 * //ただし、100で割り切れる年は閏年ではない。
 * //ただし、400で割り切れる年は閏年
 */
 
public class Test1 {
 
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
//入力された整数がグレゴリオ暦でうるう年であるか判定するプログラムを書いてください。
 
//閏年判定の条件
 
//西暦が4で割り切れる年は閏年
//ただし、100で割り切れる年は閏年ではない。
//ただし、400で割り切れる年は閏年
//整数を入力するScannerを実装
Scanner suuti1 = new Scanner(System.in);
System.out.println("日付を数字8桁で入力してください");
String dateString = suuti1.nextLine();
//入力された数値が日付に変換できるかtyr~catchで確認。
        try {
            // 入力された文字列をLocalDateに変換
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
            LocalDate date = LocalDate.parse(dateString, formatter);
 
            // 変換後のLocalDateをコンソールに出力
            System.out.println("入力された日付: " + date);
            int year = date.getYear();
            //メソッド呼び出し
            yearJudge(year);
            
            
        } catch (Exception e) {
            System.out.println("無効な日付形式です。");
        }
 
        suuti1.close();
       
 
}
/*
* 入力されたyear(変数)がうるう年かそうではないか判定。
*/
    public static void yearJudge(int year) {
    if (year % 400 ==0) {
    System.out.println("うるう年");
    } else if (year % 4 ==0 && !(year % 100 == 0)) {
        System.out.println("うるう年");
        } else {
        System.out.println("うるう年ではない");
        }
    }
 
}
 
---------------プログラムはここまで-------------------

 

ruby 任意の文字列の最後の2文字を3回繰り返す

sliceメソッドを使うことで配列や文字列から指定した要素を取り出せる

(例)

array = [0,1,2,3]

ele1 = array.slice(1,2)

puts ele1 

=> 1 2

str("hello")

ele1 = str.slice(0, 2)

puts ele1

=> "he"

このメソッドを使って最後の2文字を3回繰り返します。

 

def end_two(str)

 last2 = str.slice(str.length - 2,2) 右から2番目を出力・2つ目まで出力。

puts last2 * 3

end

end_two("hello")

 

難しく考えすぎた・・・

コードをたくさん描いてしまった・・・

これからもアウトプットして覚えます。

 

拙いアウトプットではございますが

何かありましたらご指摘お願いします。

Hello!を入力した数字の回数分出力する。

今回はrubyの復習Hello!を入力した数字の回数分出力のアウトプットをします。

def output()
end

puts "何回表示させますか?"

output()

↓(作成する)

def output(num)

 num.times do

  puts "Hello!"

 end

end

 

puts "何回表示させますか?"

num = gets.to_i

output(num)

 

まずターミナルで出力した数字をnumに代入する。

numの回数分timesメソッドを使ってHello!を出力する。

 

ちょっと拙いアウトプットではございますが

何ありましたらよろしくお願いします。

 

中間テーブルの実装

今回は中間テーブルの実装についてアウトプットしたいと思います。

中間テーブルとはテーブル通しが「多対多」の関係の時に間に配置するテーブルのことです。今回はroomsテーブルとusersテーブルの中間テーブルを作成しようと思います。

 

1.中間テーブルのモデルの作成

rails g model room_user

2.マイグレーションファイルをインストールする前にカラムの追加

20210124090629_create_room_users

t.references :room, foreign_key: true

t.references :user, foreign_key :true

references→Railsで外部キーのカラムを追加する際に用いる。

foreign_key→他テーブルの情報を参照できる。

3.マイグレーションファイルのインストールを行う

rails db:migrate

 

ちょっと拙いアウトプットではございますが・・・

何かありましたらご教授よろしくお願いします。

validationの設定(名前の空白のエラーや文字数の制限)

validationの設定

データベース(mygrationファイル)に登録する際の設定をするため

models/user.rbに記述します。

 

validates :name, presence: true

presence(空ではNGだということ)

 

ちょっと拙いアウトプットではございますが・・・

何かありましたらご指摘よろしくお願いします。

ユーザー編集ページの遷移ができるためにビューファイルの編集

(旧) <div class="header-name">

        <a href="#">Tom</a>

        </div>

         ↑

前のカリキュラムの記述(CSSの設定のためTomを仮の名前で登録)

(新)<div class="header-name">

         <%= link_to current_user.name(表示したい名前), edit_user_path(rails routesで探す)(current_user) %>

        </div>

         ↑

link_toでページの遷移ができるようにし、その後表示したい名前を入れるcurrent_user.name,(今回の場合、マイグレーションファイルで登録している名前)

edit_user_path(rails routesで調べたpathを入れる)

(current_user)(pathの番号を入れる)

 

ちょっと拙いアウトプットではございますが・・・

何かありましたらアドバイスお願いします。