`
sogo6
  • 浏览: 113297 次
  • 性别: 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# 提供了多种方式来获取当前系统的日期...

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

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

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

    在小学三年级数学下册的课程中,5.3章节主要涉及的是简单的时间计算方法,这是学生初步接触并学习时间管理的重要阶段。这个阶段的教学目标是让孩子们能够理解并掌握计算两个时间点之间经过时间的基本技能,这对于...

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

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

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

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

    哈工大计算方法实验

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

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

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

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

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

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

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

    计算方法实验报告

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

    计算方法课程总结.docx

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

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

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

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

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

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

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

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

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

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

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

    山西大学计算方法matlab实验八

    实验报告涉及的是数值分析中的计算方法,具体是利用欧拉公式、改进欧拉公式和经典四阶龙格-库塔公式来求解常微分方程的初值问题。这三种方法是数值积分中常见的离散化技术,用于近似解决无法解析求解的微分方程。 1...

    matlab 数值分析 数值计算方法(丁丽娟) 程序集

    矩阵特征向量与特征值的计算: 雅可比迭代法 幂法 幂法-原点位移法加速 幂法Atiken加速 反幂法 古典雅可比求特征根 QR方法 正交化的QR分解算法 海参堡矩阵的QR方法-拟三角形矩 插值法 拉格朗日插值法 分段线性插值...

Global site tag (gtag.js) - Google Analytics