Попробуйте этот подход:
aspx.cs code
protected int GetRows(object value) {
if (value == null || string.IsNullOrWhiteSpace(value.ToString()))
return 1;
var contentTrimmed = value.ToString().Replace('\t', ' ').Replace('\r', ' ').Replace('\n', ' ').Trim();
var length = (decimal)contentTrimmed.Length;
if (length == 0)
return 1;
int res = 0;
decimal maxLength = 56;
using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1)))
{
SizeF sizeRef = graphics.MeasureString("W", new Font("Segoe UI", 13, FontStyle.Regular, GraphicsUnit.Pixel));
maxLength = maxLength * (decimal)sizeRef.Width;
SizeF size = graphics.MeasureString(contentTrimmed, new Font("Segoe UI", 13, FontStyle.Regular, GraphicsUnit.Pixel));
length = (decimal)size.Width;
}
res = (int)Math.Round(length / (decimal)maxLength, MidpointRounding.AwayFromZero);
if (res == 0)
return 1;
return res;
}
код aspx
<asp:TextBox ID="txtValue" TextMode="MultiLine" Text='<%# Eval("Value") %>' runat="server" MaxLength="500" Width="700px" Rows='<%# GetRows(Eval ("Value")) %>' ></asp:TextBox>
Подобно ответу на Python, я могу показать вам, что делает R :
R> now <- Sys.time() # get current time
R> format(now) # format under local TZ
[1] "2009-08-03 18:55:57"
R> format(now,tz="Europe/London") # format under explicit TZ
[1] "2009-08-04 00:55:57"
R> format(now,tz="America/Chicago") # format under explicit TZ
[1] "2009-08-03 18:55:57"
R>
, но R использует внутреннее представление, расширяющее обычное значение struct tm
--- см. R-2.9.1 / src / main / datetime.c.
Тем не менее, это тема волосатая, и было бы неплохо, если бы это была стандартная библиотека. Возможно, вам не стоит использовать Boost Date_Time (пример)
Из tzfile (5), который документирует файлы в / usr / share / zoneinfo (в моей системе) с ужасающими подробностями:
Кажется, что часовой пояс использует tzfile внутренне, но glibc отказывается выставить его в пользовательское пространство. Это самое вероятно, потому что стандартизованный функции более полезны и портативный и фактически задокументированный glibc.
Опять же, это, вероятно, не то, что вы ищете (например, API), но информация есть, и вы можете проанализировать ее без особых усилий.
Я действительно думал, что что-то там написано, но, кажется, неправильно вспомнил. Я знаю, что вы, вероятно, ищете простой код на C, но вот лучшее, что у меня есть:
Я знаю, что Python имеет некоторое представление о часовых поясах через класс tzinfo
- вы можете прочитать о это в документации datetime . Вы можете взглянуть на исходный код модуля (в архиве , он находится в Modules / datetime.c) - у него есть некоторая документация, так что, возможно, вы сможете что-то из этого извлечь.