Skip to content

Instantly share code, notes, and snippets.

@kakari2
Last active December 6, 2015 13:35
Show Gist options
  • Select an option

  • Save kakari2/1e9ab0d56a5fc25a2f35 to your computer and use it in GitHub Desktop.

Select an option

Save kakari2/1e9ab0d56a5fc25a2f35 to your computer and use it in GitHub Desktop.
ASP.NET
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WarekiSample.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<h1>和暦→西暦</h1>
<div>
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="0">明治</asp:ListItem>
<asp:ListItem Value="1">大正</asp:ListItem>
<asp:ListItem Value="2">昭和</asp:ListItem>
<asp:ListItem Value="3">平成</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" Style="width : 2em;"></asp:TextBox>
<span>年</span>
<asp:TextBox ID="TextBox2" runat="server" Style="width : 2em;"></asp:TextBox>
<span>月</span>
<asp:TextBox ID="TextBox3" runat="server" Style="width : 2em;"></asp:TextBox>
<span>日</span>
</div>
<div>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Value="0">明治</asp:ListItem>
<asp:ListItem Value="1">大正</asp:ListItem>
<asp:ListItem Value="2">昭和</asp:ListItem>
<asp:ListItem Value="3">平成</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TextBox4" runat="server" Style="width : 2em;"></asp:TextBox>
<span>年</span>
<asp:TextBox ID="TextBox5" runat="server" Style="width : 2em;"></asp:TextBox>
<span>月</span>
<asp:TextBox ID="TextBox6" runat="server" Style="width : 2em;"></asp:TextBox>
<span>日</span>
</div>
<div>
<asp:Button ID="Button_ToSeireki" runat="server" Text="西暦に直す" />
<asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
</div>
<div>
<asp:Button ID="Button_Compare" runat="server" Text="比較する" />
<br />
<asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox15" runat="server"></asp:TextBox>年差
<br />
<asp:TextBox ID="TextBox16" runat="server"></asp:TextBox>月差
<br />
<asp:TextBox ID="TextBox17" runat="server"></asp:TextBox>日差
</div>
<div style="margin-top : 20px;">
<h1>西暦→和歴</h1>
<span>西暦 : </span>
<asp:TextBox ID="TextBox9" runat="server"></asp:TextBox>
</div>
<div>
<asp:Button ID="Button_ToWareki" runat="server" Text="和暦にする" />
<br />
<asp:TextBox ID="TextBox10" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox11" runat="server"></asp:TextBox>
<div>
<asp:DropDownList ID="DropDownList3" runat="server">
<asp:ListItem Value="0">明治</asp:ListItem>
<asp:ListItem Value="1">大正</asp:ListItem>
<asp:ListItem Value="2">昭和</asp:ListItem>
<asp:ListItem Value="3">平成</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TextBox12" runat="server" Style="width : 2em;"></asp:TextBox>
<span>年</span>
<asp:TextBox ID="TextBox13" runat="server" Style="width : 2em;"></asp:TextBox>
<span>月</span>
<asp:TextBox ID="TextBox14" runat="server" Style="width : 2em;"></asp:TextBox>
<span>日</span>
</div>
</div>
</form>
</body>
</html>
Imports System.Globalization
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
DropDownList1.SelectedIndex = 2
TextBox1.Text = "56"
TextBox2.Text = "06"
TextBox3.Text = "12"
DropDownList2.SelectedIndex = 3
TextBox4.Text = "01"
TextBox5.Text = "06"
TextBox6.Text = "12"
TextBox9.Text = "2015/06/12"
End If
End Sub
''' <summary>
''' 西暦に直す
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Protected Sub Button_ToSeireki_Click(sender As Object, e As EventArgs) Handles Button_ToSeireki.Click
'TextBox7.Text = "2015/06/12"
Dim culture As CultureInfo = New CultureInfo("ja-JP", True)
culture.DateTimeFormat.Calendar = New JapaneseCalendar()
Dim target As String = DropDownList1.SelectedItem.Text & TextBox1.Text & "年" & TextBox2.Text & "月" & TextBox3.Text & "日"
Dim result As DateTime = DateTime.ParseExact(target, "ggyy年M月d日", culture)
TextBox7.Text = result
Trace.Warn(result)
Trace.Warn(result.ToLongDateString())
End Sub
''' <summary>
''' 比較する
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Protected Sub Button_Compare_Click(sender As Object, e As EventArgs) Handles Button_Compare.Click
Dim culture As CultureInfo = New CultureInfo("ja-JP", True)
culture.DateTimeFormat.Calendar = New JapaneseCalendar()
Dim target As String = DropDownList1.SelectedItem.Text & TextBox1.Text & "年" & TextBox2.Text & "月" & TextBox3.Text & "日"
Dim result As DateTime = DateTime.ParseExact(target, "ggyy年M月d日", culture)
Dim target2 As String = DropDownList2.SelectedItem.Text & TextBox4.Text & "年" & TextBox5.Text & "月" & TextBox6.Text & "日"
Dim result2 As DateTime = DateTime.ParseExact(target2, "ggyy年M月d日", culture)
TextBox7.Text = result
TextBox8.Text = Date.Compare(result, result2).ToString
Trace.Warn(result)
Trace.Warn(result.ToLongDateString())
TextBox15.Text = DateDiff(DateInterval.Year, result, result2)
TextBox16.Text = DateDiff(DateInterval.Month, result, result2)
TextBox17.Text = DateDiff(DateInterval.Day, result, result2)
End Sub
''' <summary>
''' 和暦に直す
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Protected Sub Button_ToWareki_Click(sender As Object, e As EventArgs) Handles Button_ToWareki.Click
Dim culture As Globalization.CultureInfo = New Globalization.CultureInfo("ja-JP")
culture.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar
'和暦に変換(ggは元号)
TextBox10.Text = CType(TextBox9.Text, DateTime).ToString("gg yy/MM/dd", culture)
'Valueの一致したものを選択する
Dim item_id As Integer = 0
For Each item As ListItem In DropDownList3.Items
Trace.Warn(item.Text)
Trace.Warn(CType(TextBox9.Text, DateTime).ToString("gg", culture))
If (item.Text = CType(TextBox9.Text, DateTime).ToString("gg", culture)) Then
DropDownList3.SelectedIndex = item_id
Exit For
End If
item_id += 1
Next
TextBox12.Text = CType(TextBox9.Text, DateTime).ToString("yy", culture)
TextBox13.Text = CType(TextBox9.Text, DateTime).ToString("MM", culture)
TextBox14.Text = CType(TextBox9.Text, DateTime).ToString("dd", culture)
'M/T/S/Hのような表記はReplaceを使う
Dim date_henkan As String
date_henkan = CType(TextBox9.Text, DateTime).ToString("gg yy/MM/dd", culture)
If date_henkan.StartsWith("平成") Then
TextBox11.Text = date_henkan.Replace("平成", "H")
ElseIf date_henkan.StartsWith("昭和") Then
TextBox11.Text = date_henkan.Replace("昭和", "S")
ElseIf date_henkan.StartsWith("大正") Then
TextBox11.Text = date_henkan.Replace("大正", "T")
ElseIf date_henkan.StartsWith("明治") Then
TextBox11.Text = date_henkan.Replace("明治", "M")
End If
End Sub
End Class
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment