小编Pyr*_*cer的帖子

如何在Perl中减去两个HH:MM:SS次?

我需要使用Perl从另一个时间减去一次.两次都是HH:MM:SS格式.

我可以简单地在冒号上分割时间字符串,然后对每组数字执行数学运算,这是相对简单的:

$seconds_passed = $seconds_later - $seconds_earlier;
if ($seconds_passed < 0) { $seconds_passed = 60 - abs($seconds_passed); }
Run Code Online (Sandbox Code Playgroud)

等等分钟和小时,然后通过将每个结果转换为秒并将它们相加来计算通过的总时间.第二行是处理后来的数字实际上更高的情况,比如第一次是23:58:59而第二次是23:59:09,实际经过的秒数是10,但计算结果是给09-59 = -50,所以从60减去那个(50)的正形式给出了正确的结果.

在这种情况下,我正在寻找最简单,最小的解决方案(尽可能避免使用大型和复杂的模块),所以这可能是我的解决方案,但是想知道是否有标准/内置方式做这种事情?

perl time

10
推荐指数
1
解决办法
6724
查看次数

在asp.net C中读取表单变量的问题#

背景:我被要求处理遗留的asp.net应用程序,该应用程序没有文档,原始程序员无法进行咨询.我主要是一个Perl程序员,主要是在*nix系统上,所以虽然我对系统的实际逻辑没有重大问题,但我会被下面的一些"裸骨"东西束缚在一起.

大纲:我正在尝试扩展现有的aspx表单以增加其功能,该表单是购买电话号码系统的一部分.此时,首次调用时的表单会在HTML下拉列表中显示位置列表和电话区号,并希望用户选择一个.当选择一个值(或选择并单击选择按钮,如果禁用JS)并提交表单时,回发模式下的页面将提供适当的重定向到购买页面,并在查询字符串中设置各种值.我想通过在同一表单上添加第二行控件来扩展功能,包括用户输入区号的文本框和"搜索"按钮.这个想法是,当用户这样做时,系统将对该区域代码进行数据库搜索,如果找到匹配,生成适当的重定向到销售该区域的页面.所有代码都是(并将在)C#中.

问题:在Stack Overflow上从asp.net表单中提取表单变量时发现了很多有用的信息,我尝试使用Request.form ["variable_name"]检索我的新变量.但很快就会发现价值观没有通过.

这是表单新位的aspx页面代码:

<tr>
    <td align='left'><b>STD code:</b></td>
    <td align='left'>
        <asp:TextBox id="STD_Code_Search"
             AutoPostBack="True"
             Columns="7"
             Text=""
             TextMode="SingleLine"
             Wrap="False"
             runat="server"/>
    </td>
        <td><asp:Button ID="Button2" runat="server" Text="Search" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我希望能够将这些变量拉回来

Button2_Clicked = Request.Form["Button2"]
STD_Code_Search = Request.Form["STD_Code_Search"]
Run Code Online (Sandbox Code Playgroud)

但是没有任何事情发生过.基于更多搜索,我发现此代码显示进入表单的所有变量:

    foreach(string key in Request.Form.Keys)
    {
        LOG.WriteLine(key + ": " + Request.Form[key] + "<br/>");
    }
Run Code Online (Sandbox Code Playgroud)

LOG对象是一个StreamWriter转到文本文件,似乎工作正常.

但是文件中的数据如下所示:

ctl00$ctl00$ctl00$ContentPlaceHolder1$Main$Range_Data$STD_Code_Search: 01952<br/>
ctl00$ctl00$ctl00$ContentPlaceHolder1$Main$Range_Data$Button2: Search<br/>
Run Code Online (Sandbox Code Playgroud)

很公平,然后我尝试使用以下内容来检索C#中的数据

STD_Search = Request.Form["ctl00$ctl00$ctl00$ContentPlaceHolder1$Main$Range_Data$STD_Code_Search"];
Run Code Online (Sandbox Code Playgroud)

这确实有效,如果我将STD_Search发送到StreamWriter LOG,我可以在文本文件中看到输入的值.

但是,如果我然后尝试读取第二个值(在这种情况下,我试图捕获Button2的值,所以我可以触发特定行为,如果单击该按钮而不是原始按钮),使用以下代码:

STD_Search = Request.Form["ctl00$ctl00$ctl00$ContentPlaceHolder1$Main$Range_Data$STD_Code_Search"];
Button2_Clicked = Request.Form["ctl00$ctl00$ctl00$ContentPlaceHolder1$Main$Range_Data$Button2"];
Run Code Online (Sandbox Code Playgroud)

然后,虽然asp.net进程似乎都正确完成(没有错误或页面崩溃),但文本文件的写入停止并且根本没有写入任何数据.

问题:

  1. 我确定我不应该包含所有占位符的东西(在这里阅读我收集到的是底层框架的一部分,而asp实际上应该只提供命名变量,就像Perl或PHP系统一样有一个简单的HTML表单),任何关于为什么可能发生的指针,以及我应该做什么来处理/提取数据?

  2. 当我尝试读取第二个变量时,为什么这一切都会消失,尽管我只读了一个工作(对于一些大的工作值)?

  3. 是否有关于asp.net和C#的推荐书籍?我有Sitepoint的"使用C#和VB构建你自己的asp.net 4网站",这对于尝试将别人的代码分开并重新构建它有所帮助.

之前的研究:我已经对此进行了广泛的搜索,但是到目前为止我看到的大多数答案都与使用asp.net处理从外部站点提交的数据等的人或者直接使用post的脚本有关.我在asp.net上看过教程的所有网站似乎都说我应该使用Request.Form …

c# forms asp.net

6
推荐指数
1
解决办法
1390
查看次数

CSS样式"泄漏"到非预期的元素,它为什么会发生以及如何防止它?

根据W3Schools CSS的说明,如果您在元素上使用ID,那么为该ID定义的CSS样式(使用#id_name)应仅适用于该元素,这就是您应该如何设置仅出现一次的元素的样式.

我有一个包含显示表的站点(实际的表格数据,它是不同分类中的电话号码网格).所以我将表放在div中并将div设置为ID.然后我在stylesheep中为ID定义了样式.

HTML:

<div id='phone_number_grid'>
    <table>
    ...
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#phone_number_grid table {
   border-collapse: collapse;
}
#phone_number_grid th,td {
   border: 1px solid #000040;
   background-color: #ccccff;
   padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)

该样式在其预期的表上完美地工作,但它也影响一个完全不同的表,它没有类或id设置,并且包含在一个完全不相关的div中,它具有自己的(完全不相关的)类设置,在不同的页面上使用相同的样式.

如何阻止#phone_number_grid样式影响不相关的表?

注意我之前在div上使用类ID尝试了同样的事情,结果相同 - 样式"泄露"到其他未提及它们的表上.

Q1:为什么这些样式适用于不引用它们的元素?

Q2:有没有CSS方式说"不要对这个特定元素应用任何样式"?

css css-selectors

2
推荐指数
1
解决办法
1395
查看次数

标签 统计

asp.net ×1

c# ×1

css ×1

css-selectors ×1

forms ×1

perl ×1

time ×1