如何在C#中增加/减少日期字符间距

时间:2016-08-08 15:13:36

标签: c#

Date Character Spacing

如何增加/减少日期字符之间的空间。

D - > - > D / M - > M / Y - > ÿ - > Y - Y - >

应该是这样的:

0    8      0    8     2   0   1  6     

3 个答案:

答案 0 :(得分:2)

这样的东西够好吗?

@day_most_work = WorkSchedule.includes(:person).group('work_schedules.id, work_schedules.day_of_week').order('COUNT(work_schedules.day_of_week) DESC').first.day_of_week

输出:

var padded = string.Join(" ", DateTime.Now.ToString("dd MM yyyy").ToCharArray())

这是另一种选择:

0  8     0  8     2  0  1  6

...

public class CharWithPadding
{
    public char Char;
    public int Padding;
}

答案 1 :(得分:1)

如果我理解正确,看起来你正在寻找输出格式化程序

在这种情况下可以使用String.format:

var someDate = new System.DateTime(2016, 8, 8);

string.Format("{0,10}:{1,20}:{2,30}", someDate.Month, someDate.Day, someDate.Year)

输出:

  "         8:                   8:                          2016"

您可以输入任何值{0,XX},具体取决于给定参数所需的填充量。

此外,请查看date and time formatters

答案 2 :(得分:0)

您提出的问题要么被称为kerning,要么被称为letter spacing。但是,如果您知道要打印到的表单上的确切位置,那么从DateTime对象的各个部分创建和定位单独的元素可能要好得多,而不是尝试调整间距:

DateTime FormDate = DateTime.Now;
Box1.Text = FormDate.DayToString();
Box2.Text = FormDate.Month.ToString();

许多字体的每个字符都有不同的宽度,包括' &#39 ;;有时甚至字母组合之间的空格也不同如果字体(或表单)发生变化,或者如果重复使用此代码,如果您的解决方案不依赖于字体,那么生活会更容易。