栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现日期转换小工具

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现日期转换小工具

已知日期转天数;已知天数转日期
核心是判断闰年,可见:C语言判断闰年

//编译环境vs 2019
#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
using namespace std;
#include 

int year = 0, sum = 0, month = 0, day = 0;

bool leapYear(int year);
int leapMonth[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
int noleapMonth[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
void schema1();
void schema2();

void main()
{
    int year = 0, sum = 0, month = 0, day = 0;
    int key = 0;
    printf("1.日期转天数:输入x年x月x日,输出第x天n2.天数转日期:输入x年第x天,输出x年x月x日n");
    scanf("%d",&key);
    switch (key)
    {
    case 1:schema1(); break;
    case 2:schema2(); break;
    default:break;
    }
}

void schema1()
{
    printf("n请输入:xxxx-xx-xx:n");
    string str;
    cin >> str;

    int year, month, day;
    year = stoi(str.substr(0, 4));
    month = stoi(str.substr(5, 7));
    day = stoi(str.substr(8, 10));
    //printf("%d %d %d", year, month, day);
    //至此,年,月,日已经安排好

    int sum = 0;
    if (leapYear(year))   //如果是闰年,则一年有366天
    {//先判断是否是闰年,再判断是哪一个月
        for (int k = 0; k < month - 1; k++)
        {
            sum += leapMonth[k];
        }
        sum += day;
    }
    else
    {
        for (int k = 0; k < month - 1; k++)
        {
            sum += noleapMonth[k];
        }
        sum += day;
    }

    printf("n%dn", sum);
}

void schema2()
{
    printf("n请输入:xxxx xxx:n");
    scanf("%d", &year);
    scanf("%d", &sum);
    if (leapYear(year))       //先判断是否闰年
    {
        // printf("闰年n");
        for (int i = 0; sum > 0; i++)
        {
            month += 1;

            day = sum;
            sum -= leapMonth[i];
        }
    }

    else
    {
        // printf("闰年n");
        for (int i = 0; sum > 0; i++)
        {
            month += 1;
            day = sum;
            sum -= noleapMonth[i];

        }
    }
    printf("n%d-%d-%dn", year, month, day);

}

bool leapYear(int year)
{
    if(year % 4 == 0 && year % 100 != 0|| year % 400 == 0)
        return true;
    else
        return false;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号