LoginSignup
2
1

【UiPath】西暦から和暦変換の方法について

Posted at

はじめに

ロボでは日付情報のデータ入力を行うケースがあります。その中で仕事内容によっては和暦で入力を行うケースもあります。
今回はロボ実行日(西暦)のデータを和暦に変換するナレッジを残します。

この記事の対象者

  • UiPath初学者
  • UiPath Studioで西暦から和暦変換を行いたい方

目次

  1. 開発環境紹介
  2. 処理要件確認
  3. 実装
  4. 解説

開発環境紹介

  • OS:Windows11
  • 開発ツール:UiPath Studio
  • バージョン:2023.10.0
  • ライセンス:Community License
  • モダン デザイン エクスペリエンス:いいえ
  • Microsoft Excel:2310
  • 本投稿の開発環境になっております
  • バージョンによっては画面が一部異なる可能性はございます

UiPath 依存関係

パッケージ名 バージョン
UiPath.Excel.Activities 2.22.2
UiPath.Mail.Activities 1.21.1
UiPath.System.Activities 23.10.2
UiPath.Testing.Activities 23.10.0
UiPath.UIAutomation.Activities 23.10.3

処理要件確認

  • ロボ実行日(西暦)のデータを和暦変換を行う

実装

Invoke Codeのみ_完成イメージ

image.png

「コードを呼び出し」アクティビティを利用したDictionaryの設定値 (コードを呼び出し:和暦情報をセット)

コードを呼び出し:和暦情報をセット
'====================
'処理概要:和暦情報をセット

'IN:なし
'OUT:
  'OutDicJapaneseCalendarItem:和暦データ
    'KEY:元号
    'KEY:年
    'KEY:月
    'KEY:日
    'KEY:曜日
'IO:なし
'====================

OutDicJapaneseCalendarItem = New Dictionary(Of String,String)

Dim processDay As DateTime = DateTime.Now
' カルチャを日本語(ja-JP)に設定する。
Dim cultureInfo As New System.Globalization.CultureInfo("ja-JP", True)
cultureInfo.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar()

'dicCalendarItem
OutDicJapaneseCalendarItem("元号") = processDay.ToString("gg",cultureInfo)
OutDicJapaneseCalendarItem("年") = processDay.ToString("yy",cultureInfo)
OutDicJapaneseCalendarItem("月") = processDay.ToString("MM",cultureInfo)
OutDicJapaneseCalendarItem("日") = processDay.ToString("dd",cultureInfo)
OutDicJapaneseCalendarItem("曜日") = processDay.ToString("ddd",cultureInfo)

コードを呼び出し:和暦情報をセット  「呼び出されたコード引数」

Name Direction Type Value
OutDicJapaneseCalendarItem 出力 Dictionary dicCalendarItem

代入アクティビティ利用_完成イメージ

image.png

変数情報

名前 変数の型 スコープ 規定 注釈
processDay DateTime DataConversion_JapaneseCalendar ロボ実行日 
cultureInfo Cultureinfo DataConversion_JapaneseCalendar カルチャ情報 
strEra String DataConversion_JapaneseCalendar 元号 
strYear String DataConversion_JapaneseCalendar 年 
strMonth String DataConversion_JapaneseCalendar 月 
strDay String DataConversion_JapaneseCalendar 日 
strDayOfWeek String DataConversion_JapaneseCalendar 曜日 

実装補足

System.DateTime
image.png

System.Globalization.Cultureinfo
image.png

アクティビティ設定情報
'代入:ロボ実行日
processDay = DateTime.Now
'代入:カルチャ情報_日本
cultureInfo = New CultureInfo("ja-JP")
'代入:カレンダー情報の設定_日本
cultureInfo.DateTimeFormat.Calendar = New JapaneseCalendar
'代入:元号
strEra = processDay.ToString("gg",cultureInfo)
'代入:年
strYear = processDay.ToString("yy",cultureInfo)
'代入:月
strMonth = processDay.ToString("MM",cultureInfo)
'代入:日
strDay = processDay.ToString("dd",cultureInfo)
'代入:曜日
strDayOfWeek = processDay.ToString("ddd",cultureInfo)
'メッセージをログ:和暦情報出力
String.Format("{0}{1}年{2}月{3}日{4}曜日",strEra,strYear,strMonth,strDay,strDayOfWeek)

解説

西暦から和暦変換を行うためには、日本のカレンダー情報を取得する必要があります。
日本のカレンダー情報を取得後は現在の日付を軸にデータを取得することにより完成します。

おわりに

今回はロボ実行日(西暦)のデータを和暦に変換するナレッジまとめました。
システムによって和暦情報は漢字ではなくアルファベットで表示するケースがあります。
その場合は和暦に対してデータ変換(Replace)等で対処するなど、今回の記事をもとに応用することは可能です。
今回の記事で誰かの参考になれば幸いです

参考サイト

CultureInfo クラス
JapaneseCalendar クラス
DateTime 構造体
[C#] カルチャ名一覧
【UiPath】日付や時間の操作をサンプル付きで紹介
【できるUiPath】変数とインスタンスを使って西暦を和暦に変更しよう

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1