
今回ご紹介するのはアイリスオーヤマが2023年9月に発売を開始した掃除機「SUUZE」です。商品名の通り、めちゃくちゃ「吸うぜ」というのがコンセプトになっているので今使っている掃除機の吸い込みが悪い方にはぜひオススメ。
Source link
Views: 0
Views: 0
Views: 0
最近リリースされたすべての良いゲームに追いつくことは不可能だと感じています。毎週、左フィールドから別のゲームが入ってくる別のゲームが、ブラックホールの吹き飛ばしで自由な時間を食べる準備ができているようです。以下は、今月プレイする機会を得た私のお気に入りのゲームのいくつかです。
https://www.youtube.com/watch?v=wvwzoomtxv0
ミニットの後ろの乗組員は、クラシックなジャンルを奪い取った別の剥奪されたもので戻ってきました。今回は、ツインスティックシューターを再発明しています。ディスクルームは、避けて撮影を超えて動き、より大きなものになります。あなたが気付く最初の大きな変化は、あなたが実際に撃つことができないということです。はい、それは射撃のないツインスティックシューターです。これらの小さな部屋に閉じ込められており、ゲームの名目上のソーブレードと避けて、できる限り物事がますます不安定になります。ゲームを成長させるのは、ディスクがどれだけ多様であるかです。敵が撃つという要件がなければ、チームはすべての時間を費やして各敵の動きを可能な限り面白くすることができました。
これに加えて、やめないスタイルがあります。音楽はDoseoneの最高のものであり、芸術は何百回もあなたを殺すためにゲームで怒りを維持するのを難しくする気まぐれな感覚を与えます。明確にしましょう:あなたは何百回も死ぬでしょう。これはコアでの時間攻撃ゲームであり、もう数秒間しか続けようとすることは、本当の楽しみがどこにあるかです。ディスクのエッジに自分自身を押し込むことは、私が一年中楽しんだ最も爽快なゲームプレイの一部です。
https://www.youtube.com/watch?v=3rjqkam4ggs
部屋から出て、別の部屋、別の部屋、史上最高の部屋の脱出ゲームの9つは、1つの便利なパッケージにまとめられています。シュールレアル、不気味な、そして奇妙なファンは、この拡張された世界で家にいるでしょう。 9つのゲームはすべて、開発者のフォローアップRusty Lakeシリーズと共有された宇宙を形成しているので、ここにはほんの一握りの部屋から出る以外には、ここには野望のレベルがあります。ええ、各ゲームは、想像できる最も複雑なロックされた部屋から抜け出す方法を見つけることについて多かれ少なかれありませんが、これらの各ゲームを遡って、チームがゲームの共有設定とパズルのソリューションの両方でどのように創造的になるかに絶えず感銘を受けました。
あなたがポイントアンドクリックゲームやパズルのファンでない場合、私はあなたがここでたくさん見つけることを想像することはできませんが、他の誰もが素晴らしい時間を過ごすでしょう。このジャンルで可能なことの調査であることに加えて、それは彼らの作品全体でチームをシャープにするチームのスキルを見るのに楽しい方法でもあります。うまくいけば、このリリースは、すぐに新しいラスティレイクゲームが来ることを意味することを意味します。
私は自分のプロとしてのキャリアのほとんどのために自宅で仕事をしてきたので、領土に伴うすべての落とし穴をナビゲートするのがかなり得意です。私は、これらの前例のない時代に故郷の生活から彼らの仕事に適応するのをつまずく人々を見続けています。人々が介入するこれらの比phor的な衣装の中で、あなたのホームセットアップに住んでいるすべての気晴らしを処理することです。現在、この混乱を飼いならすことに専念している100万のプログラムがありますが、それらのどれもバーチャルコテージほど居心地の良いものではありません。
今、私が居心地の良いと言うとき、私は最も居心地が良いことを意味します。バーチャルコテージはあなたに衝撃を与えることはそれほど多くありません – あなたはあなたが取り組んでいるもの、あなたがそれに取り組みたい時間を入力し、それからあなたはレースに出かけます – しかし、あなたはロフィ・ビートを聞いて、キャラクターが彼女の頭をボブするのを見ている時計を刻むのではなく、あなたはレースに出かけます。あなたのスクリーンは、暖かい色調の偽のコテージに引き継がれ、ビートや雨の音のボリュームのスライダーがあります。そしてそれだけです。それ以外に言うことはあまりありませんが、多くの人が順調に進むのに役立つ無料のユーティリティであり、あなたはこれ以上要求することはできません。
https://www.youtube.com/watch?v=h-cchbmafnm
あなたの視点をひねり、それをさらにひねり、もう一度やり直し、もっとひねります。マニホールドガーデンは、他のゲームとは違ってゲームであり、アップアップが留まる必要がないゲームであり、物理学はニュートンよりもエッシャーです。確かに、それは技術的にはプラットフォーマーをパズルしますが、それを特別なものにするものを下げることになるでしょう。ゲームのほとんどは、シュールなアーキテクチャを探索し、奇妙な形の鍵を収集することにより、パスを前方に(そして後方、横向きなど)ロック解除することです。
しかし、それはすべてのゲームのオファーではありません。はい、一連のパズルを通して進歩していますが、マニホールドガーデンは迷子になるゲームです。これは、ビジュアルが非常に印象的なゲームであり、奇妙なグラデーションの色合いの世界を見つめて時間を費やすのを助けることができませんでした。このゲームが私が今まで見た他のゲームのようには見えないと言うとき、私はそれを意味します。それは無意味な建物の形と重力スワップだけではありませんが、すべてのスクリーンショットは、奇妙な反射が無限に跳ね返る奇妙な反射で歪んだ夢のように見えます。奇妙になりたい場合はチェックしてください。
https://www.youtube.com/watch?v=phndusqcvrq
共感的であることの最も麻痺する部分の1つは、あなたが見るすべての人があなたと同じように有効で乱雑で複雑な生活を送っているという認識を把握することだと思います。道路で見られる各車、高速道路を通り過ぎて運転する各家、店の目の前にいる誰もが想像し始めることしかできない深さを持っています。あなたの窓の向こうには、その事実を完全に考慮するゲームがあります。あなたは、十分な密集したエリアに住んでいた人なら誰でもすぐに理解できるように、机の上で窓の外を見ている受動的なオブザーバーとして遊んでいます。あなたは窓から他の人々の生活の中で瞬間をじっと見つめます。あなたが本当に理解することのないキャラクターとして彼らの短い垣間見ることを見ると、彼らが誰であるかの反射と、それらを形作る変曲点の両方を見る人間の瞬間を見る。
この推奨事項を書いているとき、私は自分の机の上で自分の窓の外を見ているので、自分の窓から自分の隣人の生活を見ています。あなたの窓の向こうには、この非常にありふれた行為がさわやかに感じる方法で釘付けになります。確かにここにはある程度のファンタジーがあります(私たちの多くはゲームスタジオから通りの向こう側に住んでいるとは思いません)が、それはとても美しくローカルで、あなたの窓を越えて愛していないのは難しいです。
ブログのファンは、私が良い探偵ゲームの吸盤であることを知っています。良い、悪い、問題ではない。私は手に入れることができる犯罪を解決することについて、ほぼすべてのゲームをプレイします。これらすべてが背景としてさえ、私は最初に聞いたとき、私たちの中のルシファーに特に興味がありました。
これらの探偵ゲームの可能性にもかかわらず、多くのゲームはおなじみのフォーミュラに従います。必要な量の証拠が得られるまで、いくつかの伝承を取得し、フィールドに出て行くと、ゲームはあなたにwhodunitを繰り返します。私はこのフォーミュラが十分に好きで、結局居心地が良いですが、私たちの中のルシファーは、私が何年も見た中で最も有望な探偵システムで型を壊すことを敢えてします。
ルシファーの大胆さには、曖昧さとタイムラインという2つの半分があります。あなたが神経節ミートに到達すると、カトリック教会をテーマにした犯罪シーンは、シーンの簡単な概要と、あなたの容疑者を倍増する少数のキャラクターの紹介を与えられています。これらの容疑者の間を行き来し、環境から証拠を収集し、ビデオ編集プログラムで見つけられるもののように見えるタイムラインにすべてを追加します。あなたは疑わしい証言のレクリエーションを演奏し、タイムラインに沿ってスクラブをして、誰かがいつ嘘をついているかを把握します。それは複雑に思えます、そして、私は最初は少し脅迫されましたが、私はそれが本当に、本当にうまく機能することをすぐに知りました。すべてをまっすぐに保つことは本当に簡単で直感的であり、私たちの中のルシファーを私たちの中の素晴らしいものにするものの後半、あいまいさを演じます。
最高の探偵ゲームでさえ、ある時点で犯人が誰であるかを教えてくれます。私は、困難な困惑をすべての人に向けてやることをすることを理解しています。ルシファーはそのすべてをで投げます。いつでも、容疑者の1人を非難し、証拠を提示することができます。それぞれの場合に正しい答えがありますが、ゲームはあまりchiいずに間違っていても進行します。ゲームを持っていることは、私を完全な馬鹿と進歩にさせてくれるのはさわやかです。
私たちの中のルシファーはひどく長いゲームではありませんが(私は約3時間でそれを打ち負かしました)、それは私が他の人がスルー・エムアップのジャンルの未来を考えるときに見えるゲームです。
今月何をプレイしていますか?以下のコメントで独自の推奨事項を作成してください。
Views: 0
Views: 0
ソロバトルでプロモパックがゲットできるバトルミッションが開幕。絵柄違いのパーモットのレアカードもゲットしたいが、それ以外にも通常版とワザ違いのポケモンが2種ゲットできるぞ!
Views: 0
私はそうでした 出口アニメーションのアイデアを把握します 最近、つまり、最近の提案(ようなもの) @exit-style
要素をDOMから削除するときに、要素をアニメーション化することができます。 それ 主に公正です 提案 現時点では、多くの課題があります。
しかし、出口(および入学!)アニメーションに役立つ新しい技術があります 今すぐ (とにかくクロムで)。それらは比較的新しいものであり、あなたが私のようであれば、私たちがこれらのdomに入っている/出口の状況にいるときにまだすぐに気にしないでください。 Una KravetsとJoey Arharはそれらを覆いました 素晴らしい 8月のブログ投稿: スムーズなエントリとエグアニメーション用の4つの新しいCSS機能。要約させてください!
@keyframes
アニメーション、これで設定できます display
その中のどこにでもプロパティがあり、それはひっくり返ります そのキーフレームで。このようになるためには使用しませんでした。アニメーションはすぐに移動します display
最終的な値へのプロパティ。これにより、あなたがする最後のことが設定される「終了」アニメーションになります display: none
、視界とアクセシビリティツリーから要素を削除します。 @keyframes
。 transition
しかし、 display
プロパティはまだ即座に最終的な値に反転します。つまり、新しいものを使用しない限り transition-behavior: allow-discrete;
それを反転するプロパティ/値 display
の変更 終わり 始まりの代わりに移行の。 @starting-style
これにより、いくつかのスタイルを設定できます。 transition
それらが存在すると仮定して、そのアットルールの外側の要素に設定されたスタイルに。
「ポップオーバー」として動作する要素(メニューやツールチップなど)。これらの要素は、魔法のように「最上層」に運ばれることから利益を得ることができます。 z-index
コンテキストの問題などを積み重ねます。しかし、今、あなたがそれをスムーズに行うために、視界からの内外のアニメーションをアニメーション化することにした場合、新しいキーワードを追加する必要があります overlay
あなたの移行に。ねえ、時々あなたは素敵なものを持ってもっと仕事をしなければならない。 そして、それはすべて、視界に登場することさえありません。トランジションを表示すると、実際に「実際の」出口アニメーションに役立つので、その状況にある場合は、見る価値があります。ウナとジョーイはそれをカバーしているので、間違いなく そのブログ投稿を掘り下げてください。
一部の分析ツールがクリックを追跡する方法を知っています 発信 ウェブサイトのリンク?それはいつも私の心を揺るがしました。 Analyticsツールがそれを知るためには、ウェブサイトがなくなってユーザーが従ったリンクの新しいものに置き換える前に、その情報を小さなスプリットの時間にサーバーに撮影する必要があります。それはかなり信頼できないと思います。
実際、この「ユーザーが去る直前」の状況に向けて特別に設計されたWebプラットフォームAPIがあります。 navigator.sendBeacon()
。それは持っているのはいいことですが、あなたはまだしなければなりません 電話 それと、それを呼びます 適切なタイミング。 Erik Wittはブログ投稿でこれを調査しました ビーコンの信頼性をアンロードする:最小限のデータ損失のためのベンチマーク戦略。
彼は、イベントリスナーでSendBeaconを呼び出すことを比較しました unload
、 beforeunload
、 pagehide
、 そして visibilitychange
。私は自分のお金をかぶっていただろう beforeunload
、しかしそれはそうでした 断然最悪です データの37%のみを確実に報告します。 4つの中で最高です visibilitychange
90%。 Erikは、98%を報告しているChromeの実験的APIをカバーしているため、投稿をチェックしてください(使いやすくなります)。
たまに、AI/LLM APIの例が表示されます。 わかりました 大丈夫 それはかなり賢いです。レイモンド・カムデンを読んだとき、私はそう思った genaiはあなたがベガスで勝つのを助けることができますか? レイモンドが言うように、ええと、いや、それはできませんが、それはあなたが持っているブラックジャックのようなゲームで最良の決定を下すのに役立ちます 合理的に複雑な決定ツリー。
もちろん、BlackJackを支援するためにソフトウェアを作成する場合は、できることは、そのツリーのデータから正しい結果をソフトウェアに返すことです。しかし、代わりにLLMに答えを求めることにはもっと楽しくて未来的なものがあります。あなたの耳のコンピューターと話すように。
私はブラックジャックをプレイしていて、ディーラーには6つのダイヤモンドが表示されています。クラブのジャックとハートのジャックがあります。私は打つべきですか、それとも滞在する必要がありますか?
あなたは20を持っています、それは良い手です。ディーラーには16があり、これは平均以下です。あなたがヒットした場合、あなたはあなたを逮捕するカードを手に入れる危険を冒します。したがって、ディーラーが逮捕されていることを願っています。
繰り返しますが、これはそうではありません 良い アイデアは、レイモンドがAIを介して苦労していたので、恐ろしい答えを提供することを喜んでいたからですが、プロンプトを作成するためにプロンプトを作成し、チャートの座標よりも退屈でないと感じる「プレーンな言語」の方法で結果を得ることに興味深いものがあります。
先日、最近のケビンパウエルのビデオについておしゃべりしていました。 コンテナとラッパーのクラスへの新しいアプローチ (彼は他の人のほんの一握りを信じています)。このアイデアは、このような列でグリッドをセットアップすることでした。
.grid {
display: grid;
grid-template-columns:
[full-width-start] minmax(var(--padding-inline), 1fr)
[breakout-start] minmax(0, var(--breakout-size))
[content-start] min(
100% - (var(--padding-inline) * 2),
var(--content-max-width)
)
[content-end]
minmax(0, var(--breakout-size)) [breakout-end]
minmax(var(--padding-inline), 1fr) [full-width-end];
}
ちょっと複雑に見えますよね?ステップに分解するのは、それほど悪くはありません。ほとんどのように見えるのは、ほとんどが命名されています。しかし、それの本当の美しさはです で 命名。これを設置すると、呼び出すだけでグリッドにアイテムのエッジとエッジを非常に簡単に配置できます grid-column: full-width
;、しかし、通常のコンテンツは中央に設定されています。ビデオに取り上げる素晴らしい詳細がいくつかあります。おそらく最高のものは、コンテンツを全幅のコンテナ内で同じセンターに戻す方法です content
エリア まったく同じテンプレート列を適用します その容器に。
JavaScript Iを必要とするレイアウト関連のものは、通常、かなり硬いです。 JavaScriptがロード(またはそうではない)場合、レイアウトが失敗したり、シフトしたりするというアイデアは、私を悩ませます。
しかし 時々、レイアウトの更新が完全にボーナス強化である場合、私は容赦します。私は一緒にいるかもしれないと思います 要素を「全幅」にするというYihui Xieのアイデア (クラス名と同様に、Kevinが上記のセクションで利用できるようにします)。
アイデアは、JavaScriptの少しを使用して、要素が完全な幅であるかどうかを動的に決定できるということです。これが状況です:
- コードブロック(
).If the
scrollWidth
is greater thanoffsetWidth
, it means the code block has a horizontal scrollbar, and we may want to make it full-width.- 表(
).If its
offsetWidth
親のものよりも大きいですoffsetWidth
、幅が広すぎます。- 目次(IDを持つ要素
TableOfContents
、例えば、).TOCアイテムには、レイアウトに複数の長方形がある場合(
getClientRects().length > 1
)、それはアイテムが包まれていることを意味し、TOCはより多くのスペースの恩恵を受ける可能性があります。要素が完全に大きくなると、それは可能性が高くなる可能性がありますが、そうでない場合、それは大したことではありません。
Yihui Xieは、次のようなクラスで全幅を履いています。
.fullwidth { width: 100vw; margin-left: calc(50% - 50vw); }
これは古典的なテクニックでもありますが、上記のテクニックほど堅牢または柔軟ではないと思います。
サイトのページビューを追跡したいと思っていますが、ボットを避けたいと思います。つまり、現実の人間のユーザーではないサイトをリクエストするものは何でも。 ハーマン・マルティヌスは彼のクマのブログプラットフォームでそれを試みています このような:
body:hover { border-image: url("/hit/{{ post.id }}/?ref={{ request.META.HTTP_REFERER }}"); }
さて、人がページの上にカーソルを押し上げる(またはモバイルでスクロールする)とトリガー
body:hover
ポストヒットのURLを呼び出します。ボットがホバーするとは思わず、代わりにJSを使用してページと対話するだけなので、合理的な確実性を持って、これが人間の読者であると仮定できます。次に、ユーザーエージェントがボットではないことを確認します(これは完璧ではありませんが、それでも何か)。また、ユーザーエージェント文字列からブラウザとプラットフォームを抽出します。
おそらく厳密なコンピューターサイエンスではありませんが、サーバーサイドカウンターよりもはるかに便利な数字であると思います。
Views: 0
Views: 0
Rubyで日付や時刻を扱うには、標準ライブラリの Date、DateTime、Time クラスを活用します。これらは require “date” や require “time” で使えるようになります。本記事では、それぞれのクラスが何を扱うか、どのようなメソッドで操作できるかを網羅的に解説します。
p t = Time.now # 現在の時刻 例: 2025-04-06 21:46:31.430407 +0900
p t - 3600 # 1時間前 例: 2025-04-06 20:46:31.430407 +0900
p t + 60 # 60秒後 例: 2025-04-06 21:47:31.430407 +0900
p t.year # 2025
p t.month # 4
p t.day # 6
p t.strftime("%Y-%m-%d") # "2025-04-06"
require "time"
p Time.parse("2025-04-06 10:00:00") # => Time オブジェクト 例: 2025-04-06 10:00:00 +0900
p Time.parse("06 Apr 2025 10:00:00") # => Time オブジェクト 例: 2025-04-06 10:00:00 +0900
p Time.parse("2025/04/06 10:00") # => Time オブジェクト 例: 2025-04-06 10:00:00 +0900
# 特定フォーマットの文字列を Time に変換
p Time.iso8601("2025-04-06T10:00:00+09:00") # => ISO 8601 形式 2025-04-06 10:00:00 +0900
p Time.rfc2822("Sun, 6 Apr 2025 10:00:00 +0900") # => RFC 2822 形式 2025-04-06 10:00:00 +0900
p Time.httpdate("Sun, 06 Apr 2025 01:00:00 GMT") # => HTTP 日付形式 2025-04-06 01:00:00 UTC
# Time オブジェクトをフォーマットに合わせた文字列に変換
p now = Time.now # => 2025-04-06 21:58:52.383212 +0900
p now.iso8601 # => "2025-04-06T21:58:52+09:00"
p now.rfc2822 # => "Sun, 06 Apr 2025 21:58:52 +0900"
p now.httpdate # => "Sun, 06 Apr 2025 12:58:52 GMT"
補足1: ISO形式(ISO 8601形式)とは?
YYYY-MM-DDThh:mm:ss±hh:mm
2025-04-06T10:00:00+09:00
補足2: UTCとは?
UTC: 2025-04-06T01:00:00Z
JST: 2025-04-06T10:00:00+09:00
require "date"
# 基本的な生成と取得
p Date.today # => 今日の日付 #
p Date.new(2025, 4, 1) # => 2025-04-01 #
p Date.parse("2025-04-06") # => 文字列から変換 #
puts "----------------------------"
# 日付の演算
d = Date.new(2025, 4, 6)
p d + 1 # => 翌日(2025-04-07) #
p d - 7 # => 1週間前(2025-03-30) #
p d.next_day(3) # => 3日後(2025-04-09) #
p d.prev_month # => 前の月(2025-03-06) #
p d.next_month(2) # => 2ヶ月後(2025-06-06) #
puts "----------------------------"
# 曜日チェック
p d.wday # => 0(日曜日)※0〜6(Sun〜Sat)
p d.sunday? # => true
p d.monday? # => false
puts "----------------------------"
# フォーマット変換(文字列
p d.strftime("%Y-%m-%d") # => "2025-04-06"
p d.strftime("%B %d, %Y") # => "April 06, 2025"
p d.strftime("%Y年%m月%d日") # => "2025年04月06日"
puts "----------------------------"
# 文字列からの変換(フォーマット指定あり)
puts Date.strptime("06/04/2025", "%d/%m/%Y") # => 2025-04-06
puts Date.strptime("20250406", "%Y%m%d") # => 2025-04-06
puts "----------------------------"
# 日付の比較
puts a = Date.new(2025, 4, 6) # 2025-04-06
puts b = Date.new(2025, 4, 1) # 2025-04-01
p a > b # true
p a == b # false
puts "----------------------------"
# 範囲を使ったループ
from_date = Date.new(2025, 4, 1)
to_date = Date.new(2025, 4, 5)
(from_date..to_date).each do |date|
puts date.strftime("%Y-%m-%d")
end
# 出力:
# 2025-04-01
# 2025-04-02
# 2025-04-03
# 2025-04-04
# 2025-04-05
puts "----------------------------"
# 月末・月初
d = Date.new(2025, 4, 6)
puts Date.new(d.year, d.month, 1) # => 2025-04-01
puts Date.new(d.year, d.month, -1) # => 2025-04-30
require "date"
p dt = DateTime.now # 現在の時刻 #
puts "----------------------------"
# 時刻の各要素を取得
puts dt = DateTime.new(2025, 4, 6, 15, 30, 45) # => 2025-04-06T15:30:45+00:00
puts dt.year # => 2025
puts dt.month # => 4
puts dt.day # => 6
puts dt.hour # => 15
puts dt.minute # => 30
puts dt.second # => 45
puts "----------------------------"
# 日付や時刻の加減算(演算)
puts dt + 1 # 翌日 => 2025-04-07T15:30:45+00:00
puts dt - 1 # 前日 => 2025-04-05T15:30:45+00:00
puts "----------------------------"
# フォーマット文字列の活用
puts dt.strftime("%Y/%m/%d %H:%M:%S") # => "2025/04/06 15:30:00"
puts dt.strftime("%A, %d %B %Y") # => "Sunday, 06 April 2025"
puts dt.strftime("%Y年%-m月%-d日 %H時%M分") # => "2025年4月6日 15時30分"
puts "----------------------------"
# 文字列からの変換
puts DateTime.parse("2025-04-06T15:30:00+09:00") # 2025-04-06T15:30:00+09:00
puts DateTime.strptime("06/04/2025 15:30", "%d/%m/%Y %H:%M") # 2025-04-06T15:30:00+00:00
puts "----------------------------"
# タイムゾーンの扱い(オフセット指定)
puts dt = DateTime.new(2025, 4, 6, 15, 30, 0, "+09:00")
puts dt.zone # => "+09:00"
puts dt.offset # => 3/8 (9/24)
# UTC変換
puts dt.new_offset(0) # => UTC時刻(+00:00)に変換 2025-04-06T06:30:00+00:00
puts "----------------------------"
dt1 = DateTime.parse("2025-04-06T10:00:00")
dt2 = DateTime.parse("2025-04-07T10:00:00")
p dt1 dt2 # => true
p (dt1..dt2).cover?(DateTime.parse("2025-04-06T12:00:00")) # => true
puts "----------------------------"
# 日付・時刻だけ取り出したいとき
puts dt = DateTime.now # => 2025-04-06T22:37:28+09:00
puts dt.to_date # => 2025-04-06
puts dt.to_time # => 2025-04-06 22:37:28 +0900
# 出力例: 0 (Sunday)
# 出力例: Sunday
回答
require "date"
today = Date.today
puts today.wday # => 0〜6(0は日曜)
puts today.strftime("%A") # => "Sunday"など英語の曜日
# 入力: 2025年4月
# 出力: 土日が何日あるか
回答
require "date"
def weekend_count(year, month)
first_day = Date.new(year, month, 1)
last_day = Date.new(year, month, -1)
(first_day..last_day).count { |d| d.saturday? || d.sunday? }
end
puts weekend_count(2025, 4) # => 8
# 入力: Date型2つ
# 出力: 平日と休日の数(祝日は無視)
回答
require "date"
def count_weekdays_and_weekends(from, to)
weekdays = 0
weekends = 0
(from..to).each do |date|
if date.saturday? || date.sunday?
weekends += 1
else
weekdays += 1
end
end
{ weekdays: weekdays, weekends: weekends }
end
start_date = Date.parse("2025-04-01")
end_date = Date.parse("2025-04-10")
result = count_weekdays_and_weekends(start_date, end_date)
puts result
# => {:weekdays=>8, :weekends=>2}
# 入力: Date配列
# 出力: 今日より未来のうち、最も近い日付
回答
require "date"
def nearest_future_date(dates)
today = Date.today
future_dates = dates.select { |d| d > today }
future_dates.min
end
dates = [
Date.new(2025, 4, 10),
Date.new(2025, 4, 5),
Date.new(2025, 4, 8)
]
puts nearest_future_date(dates)
# 今日が2025-04-06 なら => 2025-04-08
# 入力: ["2025-04-10", "2023-01-01", "2024-12-31"]
# 出力: ["2023-01-01", "2024-12-31", "2025-04-10"]
回答
require "date"
def sort_date_strings(array)
array.map { |s| Date.parse(s) }
.sort
.map(&:to_s)
end
dates = ["2025-04-10", "2023-01-01", "2024-12-31"]
puts sort_date_strings(dates)
# => ["2023-01-01", "2024-12-31", "2025-04-10"]
Rubyは Time と Date をしっかり使い分けることで、複雑な日付処理も簡潔に書くことができます。標準ライブラリながら強力な機能を活かして、実務でも使えるコードをどんどん書いていきましょう!
また、株式会社シンシアでは、実務未経験のエンジニアの方や学生エンジニアインターンを採用し一緒に働いています。
※ シンシアにおける働き方の様子はこちら
弊社には年間100人程度の実務未経験の方に応募いただき、技術面接を実施しております。
この記事が少しでも学びになったという方は、ぜひ wantedly のストーリーもご覧いただけるととても嬉しいです!
Views: 0