質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

4039閲覧

VB.NET 週番号を取得したい。

xxx8

総合スコア41

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/11/01 00:13

編集2018/11/01 00:18

前提・実現したいこと

取得した現在日時(yyyymmdd)から週番号を取得したいです。

今回はISO方式、USA方式それぞれの週番号を取得したいです。

試したこと

C#では週番号を求める関数があるみたいですが
VB.NETでは見つかりません。

補足情報(FW/ツールのバージョンなど)

VisualStudio 2010
FrameWork 4
VB.NET

追記

DatePart("ww", "2011/1/31", vbFirstFullWeek)

とすれば週番号を求めることができるのは分かったのですが
二つの方式で求められる週番号はどうすれば取得できるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Calendar.GetWeekOfYearメソッドにて取得できます。

投稿2018/11/01 00:20

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxx8

2018/11/01 00:27

ご回答ありがとうございます。 確認させていただきましたが求める方式の指定方法が イマイチ分かりません。お力添えいただけないでしょうか。
YAmaGNZ

2018/11/01 00:33

使用方法に関しては、Zuishinさんの提示されているページにありますので、そちらを参照してください。
xxx8

2018/11/01 00:41

迅速な対応ありがとうございます。
guest

0

ベストアンサー

週番号の付け方は2種類ある

これに従って計算すればいいと思います。
C# の例で使われているクラスも、VB.NET で使えるものばかりです。

投稿2018/11/01 00:18

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxx8

2018/11/01 00:27

ご回答ありがとうございます。
Zuishin

2018/11/01 00:29

Calendar.GetWeekOfYear の使い方がそのまんま載ってますから、VB の文法に直してください。 メソッド呼び出しだけなのでほとんど考える必要ないでしょう。
xxx8

2018/11/01 00:33

それはつまり、 WEEKNUM("2016/1/1",1)を GetWeekOfYear("2016/1/1",1)とすればUS方式 GetWeekOfYear("2016/1/1",21)とすればISO方式の 週番号が取得できるということでしょうか?
Zuishin

2018/11/01 00:34

違います。一番下にコードがあります。 みつからなければ GetWeekOfYear でページ内検索してみてください。
Zuishin

2018/11/01 00:40

// 2016 年 1 月 1 日を表す DateTime 型を変数 calclationDate に入れます。 DateTime calculationDate = new DateTime(2016, 1, 1); // 現在のカルチャーの Calendar を取得します。 Calendar calenderCalc = CultureInfo.CurrentCulture.Calendar; // US 方式の週番号 int usWeekNumber = calenderCalc.GetWeekOfYear(calculationDate, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); // ISO 方式の週番号 int isoWeekNumber = calenderCalc.GetWeekOfYear(calculationDate, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); // それらを表示 Console.WriteLine("US方式 " + usWeekNumber); Console.WriteLine("ISO方式 " + isoWeekNumber);
xxx8

2018/11/01 00:41

ご丁寧にありがとうございます。VBの文法に直し実装しました。 これから確認してみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問