C# 如何在C中找到一年中的哪一天、哪一年、哪一月、哪一天?

C# 如何在C中找到一年中的哪一天、哪一年、哪一月、哪一天?,c#,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来得到这些数字吗 像这样 Console.WriteLine(

我有一个应用程序需要我获得以下信息:

    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来得到这些数字吗

像这样

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的数字,必须使用字符串格式

        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);

官方MS Docs:@Alan2左边的零表示小数字是什么意思?整数是数字,它们没有前导零。@Alan2您检查过类的文档了吗?都在那里。文件也在上面吗formatting@Neo感谢返回的值good@Anne3阅读文档。都在那里。数字没有填充。字符串可以。检查文档中的ToString和datetimeformatting@Anne3你是在劫持Alan2的问题还是你有两个账户?我非常不同意你计算一年中的一周的方法。这通常是通过日历完成的,并且根据文化的不同而不同,特别是日历周规则-参见。谢谢Saif,我喜欢你的答案,但同意Manfred的观点。也许每周的计算是我需要做的一些不同的事情。@Alan2我的评论中链接了正确的方法-当你知道你在做什么时,这真的很容易。我同意,但请参阅更新answer@Saif不需要复杂的计算
        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);