Dartで西暦、和暦、年齢、干支を相互に変換する方法についてソースコード付きでまとめました。
【Dart】西暦、和暦、年齢、干支を相互変換
Dartで、西暦、和暦、年齢、干支を相互に変換するプログラムを作成してみました。
– | pub.devにパッケージを公開しています |
---|---|
1 | https://pub.dev/packages/calendar_jp |
class Calendar { Calendar() {} // 年齢 → 干支 String yearToEto(num year) { var arr = ["申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未"]; return arr[year % 12]; } // 西暦 → 和暦 String yearToWareki(num year, num month, num day) { var wareki = "エラー"; if ((year == 2019) && (month < 5)) { wareki = "平成31"; } else if ((year == 1989) && (month < 2) && (day < 8)) { wareki = "昭和64"; } else if ((year == 1926) && (month < 13) && (day < 26)) { wareki = "大正15"; } else if ((year == 1926) && (month < 12)) { wareki = "大正15"; } else if ((year == 1868) && (month < 8) && (day < 31)) { wareki = "明治45"; } else if ((year == 1868) && (month < 7)) { wareki = "明治45"; } else if (year > 2018) wareki = "令和" + (year - 2018).toString(); else if (year > 1988) wareki = "平成" + (year - 1988).toString(); else if (year > 1925) wareki = "昭和" + (year - 1925).toString(); else if (year > 1911) wareki = "大正" + (year - 1911).toString(); else wareki = "明治" + (year - 1867).toString(); return wareki; } // 和暦 → 西暦 num warekiToYear(String nengo, num yearWareki) { if ((nengo == "令和") && (yearWareki > 0)) { return yearWareki + 2018; } else if ((nengo == "平成") && (yearWareki > 0)) { return yearWareki + 1988; } else if ((nengo == "昭和") && (yearWareki > 0) && (yearWareki <= 64)) { return yearWareki + 1925; } else if ((nengo == "大正") && (yearWareki > 0) && (yearWareki <= 15)) { return yearWareki + 1911; } else if ((nengo == "明治") && (yearWareki > 0) && (yearWareki <= 45)) { return yearWareki + 1867; } else {} return -1; } // 西暦 → 年齢 num yearToAge(num year, num month, num day) { //今日 var now = new DateTime.now(); // 生年月日 var birthday = new DateTime(year, month, day); // 今年の誕生日 var thisYearBirthday = new DateTime(now.year, month, day); //今年-誕生年 var age = now.year - birthday.year; //今年の誕生日を迎えていなければage-1を返す if (thisYearBirthday.isAfter(now)) { age = age - 1; } return age; } } void main() { var calender = Calendar(); // 西暦 → 干支 String eto = calender.yearToEto(1992); print(eto); // 申 // 西暦 → 和暦 String wareki = calender.yearToWareki(1992, 7, 23); print(wareki); // 平成4 // 和暦 → 西暦 num year = calender.warekiToYear("平成", 4); print(year); // 1992 // 西暦 → 年齢 num age = calender.yearToAge(1992, 7, 23); print(age); // 26 }
- | 関連記事 |
---|---|
1 | ■【Flutter入門】iOS、Android、Windowsアプリ開発 |
2 | 【Dart入門】基礎文法とサンプルコード集 |
コメント