2017-10-11 67 views
-5

我,需要我得到以下的應用程序:如何在C#中查找今年,年,月和日的哪一天?

int doy // Day of the year 
    int yr // Two digit year 
    int mon // Two digit month (zero on left for small numbers) 
    int day // Two digit day (zero on left for small numbers) 

誰能告訴我怎麼可以使用C#得到這些數字?

+4

官方MS文檔:[https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx#Anchor_2](https://msdn.microsoft .com/en-us/library/system.datetime(v = vs.110).aspx#Anchor_2) –

+1

@ Alan2你是什麼意思*「小數左邊零」*? 'int's是數字,它們沒有前導零。 –

+1

@ Alan2你檢查了班級的文件嗎?它在那裏。那麼格式化文檔 –

回答

-2

要得到數字填充在左邊0,你將不得不使用字符串格式。

 int doy = DateTime.Now.DayOfYear;// Day of the year 
     string yr = DateTime.Now.ToString("yy");// Two digit year 
     string mon = DateTime.Now.Month.ToString("d2"); // Two digit month (zero on left for small numbers) 
     string day = DateTime.Now.Day.ToString("d2"); // Two digit day (zero on left for small numbers) 
    Console.WriteLine(doy); 
    Console.WriteLine(yr); 
    Console.WriteLine(mon); 
    Console.WriteLine(day); 
3

像基於文化每年的這個

Console.WriteLine(DateTime.Now.DayOfYear); // day of year 
Console.WriteLine(DateTime.Now.Month); // month of year 
Console.WriteLine(DateTime.Now.Year); // year 

計算一週,如果在週一的一週開始,因爲其他文化不上週一開始,像阿拉伯語

int day = DateTime.Now.DayOfYear; 
var week = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); 

簡單的方法得到週數爲

Console.WriteLine(System.Globalization.DateTimeFormatInfo.CurrentInfo.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday)); 
+0

我非常不贊同你計算「每週的一週」的方式。這通常通過Calender完成,並根據文化(具體爲CalendarWeekRule)進行不同確定 - 請參閱[this](https://msdn.microsoft.com/zh-cn/library/system.globalization.calendar.getweekofyear(v = vs.110)的.aspx)。 –

+0

謝謝賽義夫,我喜歡你的答案,但同意曼弗雷德。也許周計算是我需要做不同的事情。 – Alan2

+0

@ Alan2正確的方式與我的評論聯繫在一起 - 當你知道自己在做什麼時,這很容易。 –

4
System.DateTime moment = new System.DateTime.Now; 

int year = moment.Year; 
int month = moment.Month; 
int day = moment.Day; 
int hour = moment.Hour; 
int minute = moment.Minute; 
int second = moment.Second; 
int millisecond = moment.Millisecond; 

看看這裏:MSDN Documentation - DateTime

+0

謝謝你看起來不錯 – Alan2

+2

@ Anne3閱讀文檔。它在那裏。數字沒有填充。字符串。檢查'ToString()'和日期時間格式的文檔 –

+0

@ Anne3您是劫持Alan2的問題還是您有兩個帳戶? –