- PR -

年月を分解するには

1
投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2009-01-16 16:32
 こんにちは。

VB2005の環境です。

Dim YM AS INT32 = 200901
を年と月に分けたいのです。

Dim Y AS INT16
DIM M AS INT16
を定義し
Y = YM.ToString.Substring(0, 4)
M = YM.ToString.Substring(4, 2)
としましたが、おかしいでしょうか?

普通はどのようにするのでしょうか?

宜しくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2009-01-16 16:49
結局のところ日付の検証は必要ですから、System.DateTime 型として扱うべきだと思います (できれば最初から)。 ですので一旦 System.DateTime 型にして... 後は過去のスレッドと同じ流れだと思います。# 類似品にご注意ください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2009-01-16 17:33
コード:
Y = CShort(Math.Sign(YM) * (Math.Abs(YM) \ 100))
M = CShort(Math.Abs(YM) Mod 100)



# 西暦10000年問題にも、紀元前にも対応したつもり
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-01-16 17:47
以前のこれは参考になりませんか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47533&forum=7
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2009-01-16 17:57
回答ありがとうございます。

DateTime.ParseExact(YM.ToString(), "yyyyMM", Nothing).AddMonths(1).ToString("yyyyMM")
で200902となります。

年(下2桁)と月を分けて、間に年と月の文字を入れたいのです。

09年2月とです。

となると
DateTime.ParseExact(YM.ToString(), "yyyyMM", Nothing).AddMonths(1).ToString("yy") & "年" &
DateTime.ParseExact(YM.ToString(), "yyyyMM", Nothing).AddMonths(1).ToString("MM") & "月"
でしょうか?

King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-01-16 18:05
DateTime.ParseExact(YM.ToString(), "yyyyMM", Nothing).AddMonths(1).ToString("yy年MM月")
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2009-01-16 18:06
失礼しました。

DateTime.ParseExact(YM.ToString(), "yyyyMM", Nothing).AddMonths(1).
ToString("yy年M月")
ですね。

おかげ様で、解決しました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)