29

我是 C# 的新手,从字面上看是第 50 页,我很好奇如何在一行代码中编写这些变量:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace consoleHelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {

            int mon = DateTime.Today.Month;
            int da = DateTime.Today.Day;
            int yer = DateTime.Today.Year;
            var time = DateTime.Now;

            Console.Write(mon);
            Console.Write("." + da);
            Console.WriteLine("." + yer);
        }
    }
}

我来自 JavaScript 在哪里执行此操作,它看起来像这样:

document.write(mon+'.'+da+'.'+yer);

任何帮助在这里表示赞赏。

4

10 回答 10

57

查看复合格式

Console.WriteLine("{0}.{1}.{2}", mon, da, yer);

你也可以写(虽然不是很推荐):

Console.WriteLine(mon + "." + da + "." + yer);

而且,随着 C# 6.0 的发布,您可以使用字符串插值表达式:

Console.WriteLine($"{mon}.{da}.{yer}");  // note the $ prefix.
于 2013-03-14T19:29:44.517 回答
14

您可以在一行中完成整个程序!是的,没错,一行!

Console.WriteLine(DateTime.Now.ToString("yyyy.MM.dd"));

您可能会注意到我没有使用与您相同的日期格式。这是因为您应该使用本 W3C 文档中描述的国际日期格式。每次你不使用它时,一个可爱的小动物就会在某个地方死去。

于 2013-03-14T19:33:16.807 回答
8

你可以做与 JavaScript 几乎相同的事情。尝试这个:

Console.WriteLine(mon + "." + da + "." + yer);

或者您可以通过以下方式使用WriteLine,就好像它是一个string.Format声明:

Console.WriteLine("{0}.{1}.{2}", mon, da, yer);

这相当于:

string.Format("{0}.{1}.{2}", mon, da, yer);

参数的数量可以是无限的,只要确保正确索引这些数字(从 0 开始)。

于 2013-03-14T19:30:17.243 回答
5

你应该试试这个:

Console.WriteLine("{0}.{1}.{2}", mon, da, yet);

有关详细信息,请参阅http://www.dotnetperls.com/console-writeline 。

于 2013-03-14T19:30:44.063 回答
4

如果你想使用类似于 JavaScript 的东西,你只需要先转换为字符串:

Console.WriteLine(mon.ToString() + "." + da.ToString() + "." + yer.ToString());

但是一个(很多)更好的方法是使用 format 选项:

Console.WriteLine("{0}.{1}.{2}", mon, da, yer);
于 2013-03-14T19:30:31.527 回答
1

从理论上讲,您可以简单地完成整个事情:

using System;
using System.Collections.Generic;
using System.Linq; 
using System.Text;

namespace consoleHelloWorld {
class Program {
    static void Main(string[] args) {
       Console.WriteLine(DateTime.Now.ToString("MM.dd.yyyy"));
    }
  }
}
于 2013-03-14T19:53:40.783 回答
1
 DateTime dateTime = dateTime.Today.ToString("MM.dd.yyyy");

 Console.Write(dateTime);
于 2013-07-11T02:24:44.167 回答
0

试一试:

string format = "{0} / {1} / {2} {3}";
string date = string.Format(format,mon.ToString(),da.ToString(),yer.ToString();
Console.WriteLine(date);

事实上,可能有一种方法可以自动格式化,甚至不用自己动手。

查看http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-03-14T19:30:24.887 回答
0

简单如:

DateTime.Now.ToString("MM.dd.yyyy");

链接到有关 DateTime.ToString() 方法的所有格式选项的 MSDN

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-03-14T19:34:57.023 回答
0

在“”之前使用 $ 它将允许在这些括号之间写入变量

 Console.WriteLine($"{mon}.{da}.{yer}");

亲的方式:

  Console.WriteLine($"{DateTime.Today.Month}.{DateTime.Today.Day}.{DateTime.Today.Year}");
  Console.WriteLine($"month{DateTime.Today.Month} day{DateTime.Today.Day} year{DateTime.Today.Year}");

5.24.2016

月 5 日 24 年 2016

于 2016-05-24T12:22:57.247 回答