-5

私は問題があります。ある月の最初と最後のdayNameが欲しいです。たとえば、月名を 1 月と 2012 年として渡すと、2012 年 1 月の初日と 2012 年 1 月の最終日が返されます。thnx

4

5 に答える 5

2

毎月 1 から始まりますが、最終日の数字は異なる可能性があるため、DateTime.DaysInMonthメソッドを使用してこれを行うことができます。

指定された月と年の日数を返します。

最終日の名前;

DateTime dt = new DateTime(2012, 1, DateTime.DaysInMonth(2012, 1));
Console.WriteLine(dt.DayOfWeek);

//Tuesday

初日名入れ用。

DateTime dt = new DateTime(2012, 1, 1);
Console.WriteLine(dt.DayOfWeek);

//Sunday

ここにデモがあります。

于 2013-07-03T13:07:56.483 に答える
1

次のように、月の最初と最後の日の曜日の列挙値を取得できます。

int month = 1;
DateTime date = new DateTime(2012, month, 1);

DayOfWeek firstDay = date.DayOfWeek;
DayOfWeek lastDay = date.AddMonths(1).AddDays(-1).DayOfWeek;

曜日名をローカライズされた文字列に変換する必要がある場合:

string firstDayString = DateTimeFormatInfo.CurrentInfo.GetDayName(firstDay);
string lastDayString = DateTimeFormatInfo.CurrentInfo.GetDayName(lastDay);

ローカライズされた月名文字列から月番号に変換する必要がある場合:

string monthName = "January";
int monthNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture ).Month;

すべてを一緒に入れて:

string monthName = "January";
int year = 2012;

int monthNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture).Month;

DateTime date = new DateTime(year, monthNumber, 1);

DayOfWeek firstDay = date.DayOfWeek;
DayOfWeek lastDay = date.AddMonths(1).AddDays(-1).DayOfWeek;

string firstDayString = DateTimeFormatInfo.CurrentInfo.GetDayName(firstDay);
string lastDayString = DateTimeFormatInfo.CurrentInfo.GetDayName(lastDay);

Console.WriteLine("First day of month = " + firstDayString);
Console.WriteLine("Last day of month = " + lastDayString);
于 2013-07-03T13:06:00.077 に答える
0

このコードを使用してください。

DateTime dateTime = DateTime.Now;
DateTime firstDayOfTheMonth = new DateTime(dateTime.Year, dateTime.Month, 1);
string firstDay = firstDayOfTheMonth.DayOfWeek.ToString();
DateTime lastday = firstDayOfTheMonth.AddMonths(1).AddDays(-1);
string lastdayofMonth = lastday.DayOfWeek.ToString();
于 2013-07-03T13:14:02.733 に答える
0
string month = "January";
int year = 2012;
DateTime firstDay = DateTime.Parse(month + ", 1 " + year, CultureInfo.InvariantCulture);
DateTime lastDay = firstDay.AddMonths(1).AddDays(-1);
于 2013-07-03T13:06:12.613 に答える
0
var date = new DateTime(2013, 1, 15);

var nextMonth = date.AddMonths(1);

var firstDay = new DateTime(date.Year, date.Month, 1).DayOfWeek;

var lastDay = new DateTime(nextMonth.Year, nextMonth.Month, 1).AddDays(-1).DayOfWeek;
于 2013-07-03T13:06:56.450 に答える