LocalDate クラスを使用して Java でカレンダーのデザインを実装する方法
はじめに
このカレンダーの設計を完了する前に、JavaSyntax
LocalDate.now() // 2022-07-01
の事前定義クラス
LocalDateの使用法を理解する必要があります。このオブジェクトが構築された日付を表す新しいオブジェクトが構築されます。
LocalDate.of(1999, 1, 1)
年、月、日を指定して、特定の日付に対応するオブジェクトを構築できます:
もちろん、通常は構築されたオブジェクトをオブジェクト変数に保存します:
LocalDate newYearsEve = LocalDate.of(1999, 1, 1);
LocalDate
オブジェクトがある場合、メソッド get Year
、getMonthValue
、および getDayOfMonth
を使用して年を取得できます。 、月と日:
int year = newYearsEve.getYear(); // 1999 int month = newYearsEve.getMonthValue(); // 1 int day = newYeaersEve.getDayOfMonth(); // 1
これらはオブジェクトの構築時に使用される値であるため、上記の方法は意味がないようです。ただし、計算された日付があり、それについて詳しく知るためにこれらのメソッドを呼び出したい場合があります。たとえば、plusDays
メソッドは新しい LocalDate
を取得します。このメソッドが適用されるオブジェクトが現在のオブジェクトと呼ばれる場合、新しい日付オブジェクトは、指定された新しい日付になります。現在のオブジェクトからの日数:
LocalDate aThousandDaysLater = newYearsEve.plusDays(1000); year = aThousandDaysLater.getYear(); // 2002 month = aThousandDaysLater.getMonthValue(); // 09 day = aThousandDaysLater.getDayOfMonth(); // 26
aThousandDaysLater
は元の日付に 1000 日を加算するもので、上記の方法が効果的です
カレンダーの実戦
要件: 現在の月のカレンダーを表示するには、LocalDate クラスを使用します。形式は次のとおりです:
Mon 火 Wed Thu Fri Sat Sun
1* 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
現在の日付 # マークには を使用します。ご覧のとおり、このプログラムは、1 か月の日数と、指定された日付に対応する曜日を計算する方法を知っている必要があります。
ステップの内訳
①最初にオブジェクトを構築し、現在の日付で初期化します
`LocalDate date = LocalDate.now();`
②現在の月と日付を取得します
int month = date.getMonthValue(); int today = date.getDayOfMonth();
③日付を設定します今月の最初の日を取得し、その日の曜日を取得します。
date = date.minusDays(today - 1); // 设置为当月的第一天 DayOfWeek weekday = date.getDayOfWeek(); int value = weekday.getValue(); // 1 = Monday 7 = Sunday
変数 weekday
は、タイプ DayOfWeek
のオブジェクトに設定されます。このオブジェクトの getValue
メソッドを呼び出して、曜日の数値を取得します。整数を取得します。月曜日には 1、火曜日には 2 が返され、日曜日には 7 が返されます。
④ カレンダーの最初の行がインデントされているため、月の最初の日が対応する日を指すことができます。その週の。 。次のコードは、ヘッダーと最初の行のインデントを出力します。
System.out.println("Mon Tue Wed Thu Fri Sat Sun"); for (int i = 1; i < value; i++) System.out.print(" ");
⑤ カレンダーの本体を出力し、日付が月の毎日を移動するループに入ります。
反復ごとに、日付値を出力します。 date が現在の日付の場合、日付には #*
のマークが付けられます。次に日付を翌日に進めます。新しい週の最初の日に達すると、改行が出力されます:
while (date.getMonthValue() == month) { System.out.printf("%3d", date.getDayOfMonth()); if (date.getDayOfMonth() == today) System.out.print("*"); else System.out.print(" "); date = date.plusDays(1); if (date.getDayOfWeek().getValue() == 1) System.out.println(); }
今月が何日あるか、28、29、30、31 のいずれであるかがわかりません。終わりがいつなのかはわかりません。実際、日付が当月内である限り、反復は継続します。
完全なコード
import java.time.DayOfWeek; import java.time.LocalDate; /** * @author JKC * @Description: * @date 2022/7/1 10:53 */ public class 制作日历 { public static void main(String[] args) { // 创建一个日期对象,并进行初始化 LocalDate date = LocalDate.now(); System.out.println(date); // 获取当前月份和日期 int month = date.getMonthValue(); int today = date.getDayOfMonth(); // 将date设置为这个月的第一天,并得到这一天为星期几 date = date.minusDays(today - 1); // 设置为DayOfWeek类型的对象。调用这个对象的getValue方法来得到星期几的一个数值 DayOfWeek weekday = date.getDayOfWeek(); int value = weekday.getValue(); // 1 = Monday 7 = Sunday System.out.println("Mon Tue Wed Thu Fri Sat Sun"); for (int i = 1; i < value; i++) System.out.print(" "); while (date.getMonthValue() == month) { System.out.printf("%3d", date.getDayOfMonth()); if (date.getDayOfMonth() == today) System.out.print("*"); else System.out.print(" "); date = date.plusDays(1); if (date.getDayOfWeek().getValue() == 1) System.out.println(); } if (date.getDayOfWeek().getValue() != 1) System.out.println(); } }
結論
上記のサンプル プログラムの焦点は、その方法を示すことです。実装の詳細を知らなくても、クラスのインターフェイスを使用して非常に複雑なタスクを完了するには
LocalDate API
static LocalDate now() //构造一个表示当前日期的对象 static LocalDate of(int year, int month, int day) //构造一个表示给定日期的对象 int getYear() int getMonthValue() int getDayOfMonth() //得到当前日期的年、月和日。 DayOfWeek getDayOfWeek //得到当前日期是星期几,作为DayOfWeek类的一个实例返回。调用getValue来得到1~7之间的一个数,表示这是星期几,1表示星期一,7表示星期日 LocalDate plusDays(int n) LocalDate minusDays(int n) //生成当前日期之后或之前n天的日期
以上がLocalDate クラスを使用して Java でカレンダーのデザインを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。
