ãã®æã®ã³ã¼ãã¯AIãã·ã£ã·ã£ãã¨æ¸ãã¦ãããæ代ã ããåé ã¯AIã®ã³ã¼ãè²¼ã£ã¦ããã©ãæ¬é¡ã¯ãããããªãã§ããåºç¤ã¯é©å½ã«æµãã¦ãã ãããæ¬ææ¸ããã¨æã£ãããããAIã§ãããï¼ãã¨è³å ã§åãããã®ã§ãæ·»ããã ãã
ããã¤ãçæ
ChatGPTããã«éã«æãã¦ã¿ã¾ãããä»å¹´ã®ä½%ãçµéããããæ±ããã³ã¼ããJavaã§æ¸ãã¦ãã ãããã¨ã
ãã¡ãã Java ã§ä»å¹´ãä½%çµéããããæ±ããã³ã¼ãã§ãï¼
// ä»æ¥ã®æ¥ä»ãåå¾ LocalDate today = LocalDate.now(); // ä»å¹´ã®æåã®æ¥ã¨æå¾ã®æ¥ãåå¾ LocalDate startOfYear = LocalDate.of(today.getYear(), 1, 1); LocalDate endOfYear = LocalDate.of(today.getYear(), 12, 31); // å¹´ã®çµéæ¥æ°ã¨å¹´éã®æ¥æ°ãè¨ç® long daysPassed = ChronoUnit.DAYS.between(startOfYear, today); long totalDays = ChronoUnit.DAYS.between(startOfYear, endOfYear) + 1; // çµéçãè¨ç®ï¼å°æ°ç¬¬2ä½ã¾ã§è¡¨ç¤ºï¼ double percentage = (daysPassed * 100.0) / totalDays; // åºå System.out.printf("ä»å¹´ã®%.2f%%ãçµéãã¾ããã\n", percentage);
ã¾ãåãã
ä»ã®ã¢ãã«
JetBrains AIã§ã¯ããã¤ã使ããã®ã§ãGPT-4oãClaud 3.5 SonnetãGemini Pro 1.5ã«æãã¦ã¿ã¾ãã ã¢ãã«ãå¤ããã¨å£èª¿ãå¤ããã®ã¯é¢ç½ãã§ãã
GPT-4oã¯GhatGPTã¨ã»ã¼åãã ã£ãã®ã§çç¥ã
Claud 3.5 Sonnet
Javaã§ä»å¹´ã®çµéçãè¨ç®ããã³ã¼ããæä¾ãããã¾ãããããå¹´ãèæ ®ãããããæ£ç¢ºãªãã¼ã¸ã§ã³ãä½æãã¾ããï¼
import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class YearProgress { public static void main(String[] args) { LocalDate today = LocalDate.now(); int year = today.getYear(); LocalDate start = LocalDate.of(year, 1, 1); LocalDate end = LocalDate.of(year, 12, 31); long totalDays = ChronoUnit.DAYS.between(start, end) + 1; // ãããå¹´å¯¾å¿ long daysPassed = ChronoUnit.DAYS.between(start, today) + 1; double percentage = (double) daysPassed / totalDays * 100; System.out.printf("ä»å¹´ã®çµéãã¼ã»ã³ãã¼ã¸: %.2f%%%n", percentage); } }
ãã® +1 ã£ã¦ããã年対å¿ãªã®â¦â¦ï¼
Gemini Pro 1.5
ãããã¾ãã¾ãããJavaã§ä»å¹´ã®çµéãã¼ã»ã³ãã¼ã¸ãè¨ç®ããã³ã¼ãããã·ã³ãã«ãã¨æ£ç¢ºãã両ç«ããã¦è¨è¿°ãã¾ããã
import java.time.LocalDateTime; import java.time.ZoneId; import java.time.temporal.ChronoUnit; public class YearProgress { public static void main(String[] args) { // ç¾å¨ã®æ¥æãåå¾ï¼ããªç§ã¾ã§ï¼ LocalDateTime now = LocalDateTime.now(); // ä»å¹´ã®éå§æç¹ LocalDateTime startOfYear = LocalDateTime.of(now.getYear(), 1, 1, 0, 0, 0); // ä»å¹´ã®çµäºæç¹ LocalDateTime endOfYear = LocalDateTime.of(now.getYear(), 12, 31, 23, 59, 59, 999999999); // ä»å¹´ã®ç·æéï¼ããç§ï¼ double totalNanos = ChronoUnit.NANOS.between(startOfYear, endOfYear); // ç¾å¨ã¾ã§ã®çµéæéï¼ããç§ï¼ double elapsedNanos = ChronoUnit.NANOS.between(startOfYear, now); // ãã¼ã»ã³ãã¼ã¸ãè¨ç® double percentage = (elapsedNanos / totalNanos) * 100; // çµæã表示ï¼å°æ°ç¹ç¬¬6ä½ã¾ã§ï¼ System.out.printf("ä»å¹´ã¯ %.6f%% çµéãã¾ããã%n", percentage); // ãã詳細ãªæ å ±ã表示 System.out.println("ç¾å¨æå»: " + now.format(java.time.format.DateTimeFormatter.ofPattern("yyyyå¹´MMæddæ¥ HHæmmåssç§"))); System.out.println("å¹´åããã®çµéæé: " + String.format("%,d", elapsedNanos) + " ããç§"); System.out.println("ä»å¹´ã®ç·æé: " + String.format("%,d", (long)totalNanos) + " ããç§"); } }
ããç§ã¨ããã æ¥æ°ã¨ã¯æå®ãã¦ãªãããã¾ãããã£ã¦æãã§ã¯ããããããã
irof
èªåããã®æ ã«å
¥ãããªã¨ã èãåã«jshellã§æ¸ãã¦ã¾ããã
(LocalDate.now().getDayOfYear() * 100) / LocalDate.now().with(TemporalAdjusters.lastDayOfYear()).getDayOfYear()
ãã®ããã°æ¸ããã¨ããã®ããµã¨ãä»å¹´ä½æ¥çµã£ãã£ãï¼ãã§ã
67/365
— irof (@irof) 2025å¹´3æ8æ¥
ãã®ãã¹ããããããã« "%d/%d".formatted(LocalDate.now().getDayOfYear(), LocalDate.now().with(TemporalAdjusters.lastDayOfYear()).getDayOfYear())
ãæ¸ãã¦ããããããããã®ã¯ãã人éãæ¸ããã®ãããªããã ããªããã¨æããªããåé ã«è¡ã£ãæãã§ãã
æ¬æ
çæAIã®çæãããã®ãè²¼ã£ã¦çµããã«ããã®ãä¸èãªã®ããã ãã©ãè¦ãªããã³ã¡ã³ãæ¸ãããå ¨ç¶éãã®ã«ãªãã®ãããéå»ã®ããã°ã¨ãå ¥åãã¦ãç§ã®æ¸ããããªãã¨æ¸ãã¦ãã£ã¦ãã£ããã§ããã®ãããããªããã©ã趣å³ã ããæ¸ããã¦ã»ããã§ãããã®ãã¡ããè¨ãã®æ¸ãã¦ããAIã§ããããããã£ã¦è¨ãããããã¾ã¾ãªããªããã
TemporalAdjuster
TemporalAdjuster
ããã¨ã with
ã¡ã½ããã¨ãããã¾ãè¦ãªããã©ãç¥ããªãã¨ä½¿ããªãã¯éãããç¥ã£ã¦ä½¿ããããã«ãªã£ã¦ããã¨ä½ãã¨ä¾¿å©ã§ãã
ã¨ã¯ãã1æ1æ¥ã12æ31æ¥ã®ããã« TemporalAdjusters
ã使ãå¿
è¦ã¯ãªãã¨æãã¾ãã LocalDate.of(2025, 1, 1)
ã®æ¹ãèªã¿ãããããã§ã LocalDate.of(today.getYear(), 1, 1)
ã¯èªã¿ãããã¨æããªãããããããªã today.with(MonthDay.of(1, 1))
ãããªãï¼ã¾ã MonthDay
ãåå¨ç¥ããã¦ãªãã£ãããããããããªãã¦ãããã©ãå¼æ°ã®å¯¾ç§°æ§ãåãã¦ããªãã®ã¯ãã«ããã¾ããã³ã¼ãã¬ãã¥ã¼ã¨ãã§ãè¨ããªãç¨åº¦ã®å人ã®ç¯å²ã ãã©ã MonthDay
ãªããªã withMonth
& withDayOfMonth
ã¨ãããã
並ã¹ã¦ã¿ãã
LocalDate.parse("2025-01-01"); LocalDate.of(2025, 1, 1); LocalDate.of(today.getYear(), 1, 1); today.with(MonthDay.of(1, 1)); today.withMonth(1).withDayOfMonth(1); today.with(firstDayOfYear());
æ£ç´ãã©ãã§ããããã¨ãã ãã©ãèªåãªãã©ããé¸ã¶ãã¨ãããã®çç±ã¨ãã¯èªåã®ä¸ã§æã£ã¦ãããã¨ããå§ããããã§ãããããã³ã¼ãã£ã³ã°è¦ç´ã«ããã¨ããã³ã¼ãã¬ãã¥ã¼ã®è¦³ç¹ã«ãªãã®ã«ææããã¨ãã¯å人çã«ã¯å¾®å¦é åããã¡ãããä»å¹´ãã§ãããã¨ãéè¦ã§ãã®ã³ã¼ããç¹°ãè¿ãå®è¡ããããã®ãªã 2025
ã®ãã¼ãã³ã¼ãã£ã³ã°ã®ã ãã¯NGã§ãããªããã©ãã§ããããã¨ãã«é¤æ¬å¼§ãã¤ãã¦ããã®ã¯ 緊急時の規律 - 日々常々 ã¨ã 表出した事象を叩き潰してはいけない - 日々常々 ã¨ãã¨åæ§ã®ç§ã®ä¸ã®ç¹æ®ã³ã³ããã¹ãã®è¨èã ããããã®ãã¡æ¸ãããããã¾ããã
ã¡ãªã¿ã«æå¾ã® firstDayOfYear()
㯠TemporalAdjusters
ããã§ãã static-importãåæã«ã¤ãããã¦ãAPIãªã®ã§ããã§ãããããªãã£ãã today.with(TemporalAdjusters.firstDayOfYear())
ã¨æåæ°ãæé·ã«ãªãèªã¿ã«ãããããããµãAPIã«ãªãã¾ãã
ãã2æã®ææ«æ¥ã«ã¯ TemporalAdjusters.lastDayOfMonth()
ã使ããã®ã§ãææ«æ¥ãå¿
è¦ãªæã¯ãã²æãåºãã¦ããã¦ãã ããã 3æ1æ¥ãã minusDays(1)
ã§ããããã©ããããµããããã
getDayOfXxx
getDayOfYear()
ã¯ããã®å¹´ã®æ¥æ°ãã§ããæã®æºã¡æ¬ ããç¡è¦ãã¦å¹´ãåºæºã«çãã人ãªããä»æ¥ã¯ä½æ¥ã ã£ãï¼ãã«ã¯ãXæXæ¥ãã§ã¯ãªããXæ¥ãã¨çããã®ãå½ç¶ã§ããããã人ã使ãæ¥ä»åå¾ã¡ã½ãããããã§ãããããªäººè¦ããã¨ãªããã©ã
LocalDate
ã«ã¯ getDayOf
ããå§ã¾ãã¡ã½ããã3ã¤ããã¾ããJSLã®APIä»æ§ãè¦ã¦ãè¯ãã®ã§ãããjshellãã㧠getDayOf
ã¾ã§æ¸ãã¦tabãæ¼ãããåºã¦ãã¾ããç´ æµæ©è½ã
ãã¶ãå¤ãã®äººã¯ã LocalDate
ããæ¥ä»ãåå¾ãããã ããªã®ã«ãªã㧠getDay()
ãããªã getDayOfMonth()
ãªãã¦ããªãããããªããã ãã¨é¢åã«æã£ã¦ãããããã®ã§ã¯ãªãã§ãããããç§ã¯é¢åã«æã£ã¦ã¾ããã ãããã®æèã«ããã¦æã®æºã¡æ¬ ããåæã«ãã¦ããã¦ããã®ãå°ç人é¡ã§ãããã getDay()
ã¨è¨ãç´ ç´ãªã¡ã½ããã§ãä»æ¥ã¯ä½æ¥ï¼ãã«å¿ãã¦ã»ããã¨æããã§ããããã¡ãªã¿ã«ä»æ¥ã¯8æ¥ã§ãã
ä¸é±éãéè¦ãªæ¥åã·ã¹ãã ã 㨠getDayOfWeek()
ã¯å°å³ã«å½¹ç«ã¡ã¾ããä»ã®2ã¡ã½ãã㯠int
è¿ã£ã¦ããã®ã«ããã®å㯠enum DayOfWeek
ãè¿ãã¦ããã¨ããã¨ãæãéãè¡ã£ã¦ãã¦ãªã·ã£ã¬ã§ãããã
getDayOfWeek()
ã¨ä¼¼ããã®ã« getMonth()
ããã£ã¦ããã®åã enum Month
ãè¿ã£ã¦ãã¾ããã§ãã£ã¡ã«ã¯ int
ãè¿ã getMonthValue()
ããã£ãããã¾ãã getDayOfWeekValue()
ã¯ãªããè¦ããªããã©ã欲ãããªã£ãã DayOfWeek
ã« getValue()
ããããã°ããã§ãããªããã§ä½¿ã£ããã¨ãããã©ããªãã ã£ããªãå¿ãã¾ããã
ä»å¹´ã®çµéæ¥æ° / ä»å¹´ã®æ¥æ°
LocalDate.now().getDayOfYear() / LocalDate.now().with(TemporalAdjusters.lastDayOfYear()).getDayOfYear()
ãããã㨠0
ã«ãªããã§ãããã
ã§ããã¼å°æ°ç¹ã ãã double
使ããªãããã¼ãã¨ãã§åºã¦ãããã ãã©ãæ¥åã³ã¼ã㧠double
ãå®å
¨ã«ä½¿ã£ã¦ãã®å®å
¨ãªç¶æ
ãç¶æãç¶ããã®ã¯è³é£ã®æ¥ã double
ã¯å°æ°ç¹æ°ãæ±ãã¾ãããåºå®å°æ°ç¹æ°ã§ãªãæµ®åå°æ°ç¹æ°ã§ããã®ãã¨ãåãããªããªã使ãã¹ããããªãããããã£ã¦ãããªãããããã»ã¨ãã©ã®å ´åã§ä½¿ããªãã¨æãã¾ãã
ãªã®ã§ä»åã¿ãããªåçºæ¸ãæ¨ã¦ã¹ã¯ãªãããªãããããã ãã©ãæ¥åã§ã¯ dobule
ã¨ãã¯åå¨ããªãã£ããã®ãããã«æ±ã£ã¦ã常㫠BigDecimal
ã使ã£ã¦ä¸¸ã¢ã¼ãã«æèãåããã¹ãã ã¨æã£ã¦ã¾ããããã¯å
ã«ããããããªäººã«æ¼ãä»ããªããã®ãããªããè¦ç´ã«ãã¹ãããããå¼·ãæã£ã¦ãããã¨ã§ããç§ãã³ã¼ãã£ã³ã°è¦ç´ã«é¢ãã£ãã¨ããã§ã¯å
¥ã£ã¦ãããããªãããªãã³ã¼ãã¬ãã¥ã¼ã§ãåºã¦ãããè¦æã¬ãã«ä¸ãããã
ã¾ã¨ã
ãããããå½¹ã«ç«ã¤ãããªãããªããããªè©±ãæè¡åã«ç¹ããã¨æã£ã¦ãã¾ããè£ä»ãèãã¦ã¿ããã調ã¹ã¦ã¿ãããåããããã ããè¨ãã®ã楽ããã人ãã¡ã¨ä¼è©±ã§ããã¨æ¥½ããã£ã¦æãã¾ãã楽ãããã¹ãã¨ãªãã¦æã£ã¦ãªãã®ã§ã楽ãããªã人ããã¦ãããã¨æãã¾ããæ¼ãä»ããæ°ã¯ããããããã¾ããã棲ã¿åãã§ããã¨æãã¾ãã
ã¨ã¯è¨ãä»å¾ã¯AIã«ãä»»ãã«ãªã£ã¦ããã®ã§ããã®ã¾ãã¾ã®æè¡ã¯è¦ããªããã®ã«ãªã£ã¦ãããã ãããªãã¨ã¯æã£ã¦ãã¾ãã AIãã¤ãã£ãã¯AIãã¤ãã£ãã§å系統ã®å¿ è¦ãªè¦ç´ ãæ½åºããå¥ã®æè¡ã身ã«ã¤ãã¦ãããã¨ã«ãªãã ãããããé渡æãè¶ ããå¾ã®äººãã¡ã®å¿é ã¯è¦ããªãããªã¨æã£ã¦ã¾ãã ãã®é渡æã®çã£æä¸ã¯ã©ãããããããã ãããªãã¨ã¯æã£ã¦ãã¾ãããã
ãã¾ãï¼AIã®è©±
ç§ã¯æåã®ã¯JetBrainsAIãã使ã£ã¦ããããJunieããã¯é çªå¾
ã¡ãä»ã¯æãåºãã¦ãã¾ããããªã®ã§ãã¾ãã£ã¨ãä»»ãç³»ï¼ãªãã¦è¡¨ç¾ã妥å½ãªã®ï¼ï¼ã®æ触ãã¯ããã£ã¦ãã¾ããã
ãã£ã¡ç³»ã§ãä¸çãå¤ãã£ããã¿ãããªã®ã横ç®ã«è¦ã¤ã¤ãã¬ã¤ããã¸ã§ãªãã£ã§ããç§ã¯ãã¤ãããã®ä¸çã«è¡ããã ãããªãã£ã¦æããªããéããã¦ã¾ãã ãã®è©¦è¡é¯èª¤ããæãã£ãããã©ã³ããã¤ãã³ã°ãã¦ãããã
ãã®è¾ºããç¥ããã«ãã¾ãAIã®ãã¨ãèªã£ã¦ãçå¤ãã«ãªã確信ã ãã¯ããã ãã©ãçå¤ãã§ãããããã£ã¦æããªããè¨åãã¦ã¾ãã
æè¦ã 㨠ãããããï¼ç»åã®ãã¹ãããããªã¼ï¼ ã§ãããã©ããªããããè °ã®éãJTCã¨æ¶æããããããªã¨ãããç¡è¦ã§ããªããããã®ãã¸ãã¹ã¤ã³ãã¯ããä¸ããããã°ãã£ã¨æ©ã¾ãããã§ããã©ã
ã¡ãªã¿ã«ä»åã®ã¯AIã«ã TemporalAdjusters
使ããªãã®ï¼ãã getDayOfYear()
ã¯ï¼ãã¨ãèããããããããªè¨ã訳ããªããç§ãæ¸ããã®ã¨åããããªã³ã¼ãã«ã¯ãªãã¯ãã¾ããèããªãã¨åºãã¦ãã¦ãããªãã§ããããã«éãããAIã使ãå´ãåå¨ãç¥ããªãã¨å¼ãåºããªãç³»ã¯çµæ§ããã¨æãã¾ããããã¯äººç¸æã§ãåããªã®ã§ãããããã®ãªãã§ããããã©ã TemporalAdjusters
& getDayOfYear()
ãè¯ã㦠between
ãæªãã£ã¦ãã¨ã§ã¯ãªãã§ãããã¡ãªã¿ã«æåã«åºãã¦ããã³ã¼ã㨠TemporalAdjusters
& getDayOfYear()
ã§ã¯å½æ¥ã®æ±ããéãã®ã§çµæãéã£ã¦ãã¾ãããã¹ãã³ã¼ãæ¸ãã¦ããéãç³»ã®AIãªããããã§ãããåã«ããã£ã½ãåããã®ã ã¨ãã®éãããããã¨ãè¨ããã«æåå¤ãã¦ããã®ã§ããã®è¾ºãè¿éãªäººã«ãAI使ãã°ããããããã¿ãããªãã¨ãæ¥åã§ããã®ã¯â¦â¦ã¨æã£ããã©ããã®è¾ºãè¿éãªäººã¯AI使ããªãã¦ããããã¦å¤ãããªãããå¥ã«æ°ã«ããªãã¦ãããã£ã¦æãã¾ããã
ãã¾ãï¼AIã§ä»äºã¯ãªããªããªã
ãAI使ã£ã¦ãã®ã«ã¾ã ä»äºããªãããããªããã ãã©ï¼ãã£ã¦åãï¼ãã¿ï¼ãèãããã®ã§ããã£ã¨æãããã®ã
ä»ã¾ã§ã§ãã¦ããªãã£ãæ¬æ¥ã®ä»äºãã§ããããã«ãªãã¾ããAIã使ããã¨ã§å¶æçè¤éããæã¡è¾¼ããã¨ã«ãªãã®ã§ããã®ä»äºãæ°ãã«å¢ããã ãããã©ã
ã¢ã¸ã£ã¤ã«ãµã ã©ã¤ã¯ãã¾ã§ãèªã¿è¿ãã¨ããããªãã£ã¦ãªãã¾ããã·ã¹ãã éçºããã¦ããªãæ¥çã®äººã«ãç´¹ä»ãã¦ã¿ãããä»äºã§ãã£ã¡ãå½¹ç«ã£ã¦ããã£ã¦è¨ã£ã¦ã¦ãããããã¼ã£ã¦æãã¾ããã