Преобразование часового пояса C API на Linux, ком-либо?

Попробуйте этот подход:

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>
27
задан igor 3 August 2009 в 20:31
поделиться

3 ответа

Подобно ответу на 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 (пример)

1
ответ дан Dirk Eddelbuettel 15 October 2019 в 06:36
поделиться

Из tzfile (5), который документирует файлы в / usr / share / zoneinfo (в моей системе) с ужасающими подробностями:

Кажется, что часовой пояс использует tzfile внутренне, но glibc отказывается выставить его в пользовательское пространство. Это самое вероятно, потому что стандартизованный функции более полезны и портативный и фактически задокументированный glibc.

Опять же, это, вероятно, не то, что вы ищете (например, API), но информация есть, и вы можете проанализировать ее без особых усилий.

4
ответ дан 28 November 2019 в 05:54
поделиться

Я действительно думал, что что-то там написано, но, кажется, неправильно вспомнил. Я знаю, что вы, вероятно, ищете простой код на C, но вот лучшее, что у меня есть:

Я знаю, что Python имеет некоторое представление о часовых поясах через класс tzinfo - вы можете прочитать о это в документации datetime . Вы можете взглянуть на исходный код модуля (в архиве , он находится в Modules / datetime.c) - у него есть некоторая документация, так что, возможно, вы сможете что-то из этого извлечь.

1
ответ дан 28 November 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: