`
sogo6
  • 浏览: 113779 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

简单的时间计算方法

    博客分类:
  • C++
 
阅读更多
#include <iostream>
#include <string>
enum _MLINE
{
    ML_FILE     = 5,
    ML_TEN      = 10,
    ML_FIFTEEN  = 15,
    ML_TWENTY   = 20,
    ML_THIRTY   = 30
};

int test1(std::string &r, double d, _MLINE mline);
int test2(std::string &mytime, _MLINE mline);

// 给一个时间 + 分钟数,计算结束时间
int test3(std::string &beginTime, int minutes);

int main(int argc, char *argv[])
{
    /*std::string r;
    test1(r, 4.0, ML_FILE);
    test1(r, 5.1, ML_TEN);
    test1(r, 5.2, ML_FIFTEEN);
    test1(r, 5.3, ML_TWENTY);
    test1(r, 5.4, ML_THIRTY);
    std::cout << "-------------" << std::endl;
    test1(r, 4.5, ML_FILE);
    test1(r, 5.6, ML_TEN);
    test1(r, 5.7, ML_FIFTEEN);
    test1(r, 5.8, ML_TWENTY);
    test1(r, 5.9, ML_THIRTY);*/

    /*
    std::string mytime = "5:20";
    test2(mytime, ML_FILE);
    test2(mytime, ML_TEN);
    test2(mytime, ML_FIFTEEN);
    test2(mytime, ML_TWENTY);
    test2(mytime, ML_THIRTY);

    std::cout << "--------------" << std::endl;
    mytime = "5:25";
    test2(mytime, ML_FILE);
    test2(mytime, ML_TEN);
    test2(mytime, ML_FIFTEEN);
    test2(mytime, ML_TWENTY);
    test2(mytime, ML_THIRTY);
    */

    std::string beginTime = "5:20";
    test3(beginTime, 150);
    return 0;
}

int test3(std::string &beginTime, int minutes)
{
    std::string::size_type pos = beginTime.find(":");
    if (std::string::npos == pos)
    {
        return -1;
    }

    int h = atoi(beginTime.substr(0, pos).c_str());
    int m = atoi(beginTime.substr(pos+1).c_str());

    m += minutes;
    h += m/60;
    m = m%60;

    std::cout << beginTime << ", " << minutes << "----" << h << ":" << m << std::endl;
    return 0;
}

int test1(std::string &r, double d, _MLINE mline)
{
    int h = int(d);
    int m = int(d * 60) % 60;
    m = (m/mline)*mline;
    std::cout << d << "---" << h << ":" << m << std::endl;

    return 0;
}

int test2(std::string &mytime, _MLINE mline)
{
    int topGutterHeight = 50;
    int hourHeight      = (60/mline) * 20;

    std::string::size_type pos = mytime.find(":");
    if (std::string::npos == pos)
    {
        return -1;
    }

    int h = atoi(mytime.substr(0, pos).c_str());
    int m = atoi(mytime.substr(pos+1).c_str());

    int y = topGutterHeight + hourHeight*h + (m/mline)*20;

    std::cout << mytime << "----" << "y=" << y << std::endl;

    return 0;
}

分享到:
评论

相关推荐

    C#时间计算方法

    根据提供的文件信息,本文将详细解释C#中的时间计算方法,并深入探讨如何使用这些方法来获取、格式化以及计算日期和时间。 ### C# 时间计算方法 #### 1. 获取当前系统时间 C# 提供了多种方式来获取当前系统的日期...

    数值计算方法资料和课件

    数值计算方法是现代科学技术中不可或缺的一部分,它为解决各种实际问题提供了强大的工具。从工程设计到经济模型预测,从物理模拟到数据处理分析,数值计算方法的原理和应用几乎贯穿了所有科学和工程领域。《数值计算...

    三年级数学下册5年月日5.3简单的时间计算方法教学反思苏教版202005041139

    在教授简单的时间计算方法这一课程时,教师应有意识地将课堂知识与学生的实际生活相结合,挖掘出数学在生活中的应用场景,从而提高学生的参与度和学习兴趣。比如,利用学生日常生活中接触的时间点,如起床、上学、...

    fluent计算 简易时间步长计算器

    fluent计算中,尤其是vof等多相流计算中,需要用到的建议时间不长计算器

    高等数学(数值计算方法)

    【高等数学(数值计算方法)】是一门深入探讨如何运用计算机解决实际计算问题的学科,属于应用数学的分支。这门学科关注的重点是如何通过近似方法处理那些无法精确求解或者解析解过于复杂的数学问题。在现代科技领域...

    变频器的平均无故障时间MTBF的概述以及计算方法.doc

    ### 变频器的平均无故障时间MTBF的概述及计算方法 #### 一、MTBF的基本概念 平均无故障时间(Mean Time Between Failures,简称MTBF)是衡量产品可靠性的重要指标之一,特别是在电子设备领域,如变频器等。它指的...

    哈工大计算方法实验

    它通过在每个时间步长内进行多次函数评估来近似解,比简单的欧拉方法更精确。四阶Runge-Kutta公式包含四个内部步骤,其计算量虽稍大,但效果显著优于低阶方法。 5. **相对Gauss列主元消去法**:这是一种线性代数中...

    数值计算方法上机实验报告完全版(亲手完成,含报告+含源代码+实验截图)

    数值计算方法上机实验报告不仅是理论知识的展示,更是对算法实现和问题解决能力的检验。在计算机科学与工程领域中,数值计算方法的重要性不容忽视。通过它,我们可以解决实际问题中遇到的复杂的数学模型和方程,比如...

    工程网络图时间参数最简单计算方法.doc

    "工程网络图时间参数最简单计算方法" 一、工程网络图的重要性 在工程中,网络图是非常重要的工具,它可以帮助工程师更好地规划和管理工程进度。但是,很多人对网络图的理解不够,或者只是停留在理论层面上,没有...

    简易Mie散射数值计算方法的研究

    ### 简易Mie散射数值计算方法的研究 #### 摘要及背景 本文主要探讨了一种改进的简易Mie散射数值计算方法。Mie散射是指当光波通过透明介质时,遇到介质中的小颗粒而发生偏转的现象。自1908年Gustav Mie首次提出了...

    计算方法实验报告

    计算方法是计算机科学和工程领域中的重要组成部分,它涉及到如何用数学模型来处理实际问题,并通过数值计算得到近似解。这份"计算方法实验报告"涵盖了五个关键主题:插值法、数值积分、常微分方程、非线性方程以及...

    区间复合平均价计算方法表格(简易算法).zip

    这个压缩包文件“区间复合平均价计算方法表格(简易算法).zip”包含了一个名为“区间复合平均价计算方法表格(简易算法).xls”的Excel文件,很可能提供了简化版的计算公式和实例。 区间复合平均价(Composite ...

    计算方法课程总结.docx

    《计算方法课程总结》 常微分方程(Ordinary Differential Equation, ODE)是描述自然界许多现象的关键工具,如电磁学、光学和天文学等领域。然而,与我们在高等数学中接触的简单微分方程不同,大多数实际遇到的常...

    延时电路 计算方法 电路设计使用

    本文将深入探讨延时电路的计算方法及其在电路设计中的应用。 ### 延时电路的基本原理 延时电路通常由电阻(R)和电容(C)组成,有时也会包括二极管、晶体管等元件。其中,RC电路是最常见的延时电路类型之一。在RC电路...

    合肥工业大学计算方法实验大全含报告

    【计算方法实验大全含报告】 计算方法是一门深入探讨数值计算理论与实践的学科,它在计算机科学、工程、物理等多个领域中具有广泛的应用。合肥工业大学的这门实验课程旨在帮助学生掌握各种计算方法的基本原理,并...

    工程施工网络图时间参数最简单计算方法.doc

    【工程施工网络图时间参数最简单计算方法】 网络图在工程管理中扮演着至关重要的角色,尤其在规划和控制工程进度方面。与横道图(甘特图)相比,网络图具有显著的优势。横道图虽然直观,但无法清晰地展现工作间的...

    《计算方法》课程论文.docx

    ### 计算方法在解决实际问题中的应用 #### 摘要 本文旨在探讨计算方法在实际生活问题中的应用,特别是在解决变化问题方面的作用。文章选取了两个具体案例——储蓄问题与机车启动问题,通过引入常微分方程及欧拉...

    计算方法实验程序大全(基于C++)

    在计算机科学领域,计算方法是应用数学与编程技术相结合,用于解决各种数学问题的重要手段。本资源"计算方法实验程序大全(基于C++)"聚焦于用C++编程语言实现的计算方法,尤其关注New迭代、二分法、Lagrange插值法、...

Global site tag (gtag.js) - Google Analytics