以日期时间为文件名的字符串的定量增长

以日期时间为文件名的字符串的定量增长。经常应用于多个文件的读取file1,file2,file3.本代码中的文件名仅限于 “XXXXXXXX_XXXX.txt”类型。

/*
*Copyright (c) 2015 xiu
*All rights reserved.
*
*FileName :
*摘要:将以日期时间为文件名的字符串定量增长。
*如文件名为“20080808_1755.txt”经过15分钟后时间为“20080808_1810.txt”
*/

#include <iostream>
#include <string>
using namespace std;

//将string类型的字符串转换成char *型的
void convert(char *name,string t,int char_num)
{
    for (int i=0;i<char_num;i++)
    {
        name[i]=t[i];
    }
    name[i]=‘\0‘;
}

//计算间隔为delay的下一个文件名
void computeNextFileName(char *filename,int delay,char * minute,char * hour,char * day,char *month,char * year)
{
    //整型的时间
    int t_minute,t_hour,t_day,t_month,t_year;

    string name=(string)filename; 

    //获取整型的年
    string str=name.substr(0,4);
    convert(year,str,4);
    t_year=atoi(year);

    //获取整型的月
    str=name.substr(4,2);
    convert(month,str,2);
    t_month=atoi(month);

    //获取整型的日
    str=name.substr(6,2);
    convert(day,str,2);
    t_day=atoi(day);

    //获取整型的小时
    str=name.substr(9,2);
    convert(hour,str,2);
    t_hour=atoi(hour);

    //获取整型的分钟
    str=name.substr(11,2);
    convert(minute,str,2);
    t_minute=atoi(minute);

    //分钟数增加delay
    t_minute+=delay;

    //判断分钟数是否大于60
    while (t_minute>=60)
    {
        t_minute-=60;
        t_hour+=1;
    }

    //判断小时数是否大于24
    while (t_hour>=24)
    {
        t_hour-=24;
        t_day+=1;
    }

    //判断天数
    switch(t_month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        if (t_day>31)
        {
            t_day-=31;
            t_month+=1;
            break;
        }
    case 4:
    case 6:
    case 9:
    case 11:
        if (t_day>30)
        {
            t_day-=30;
            t_month+=1;
            break;
        }
    case 2:
            if (t_year%4==0)
            {
                if (t_day>28)
                {
                    t_day-=28;
                    t_month+=1;
                }
                break;
            }
            else
            {
                if (t_day>29)
                {
                    t_day-=29;
                    t_month+=1;
                }
                break;
            }
        }
        if (t_month>12)
        {
            t_year+=1;
        }

    //  cout<<t_year<<"\t"<<t_month<<"\t"<<t_day<<"\t"<<t_hour<<"\t"<<t_minute<<endl;

        //将整型数转换成字符串
        itoa(t_year,year,10);
        itoa(t_month,month,10);
        itoa(t_day,day,10);
        itoa(t_hour,hour,10);
        itoa(t_minute,minute,10);

        if (t_month<10)
        {
            month[1]=month[0];
            month[0]=‘0‘;
        }
        if (t_day<10)
        {
            day[1]=day[0];
            day[0]=‘0‘;
        }
        if (t_hour<10)
        {
            hour[1]=hour[0];
            hour[0]=‘0‘;
        }
        if (t_minute<10)
        {
            minute[1]=minute[0];
            minute[0]=‘0‘;
        }

}

void main()
{
    char filename[20] = "20120606_2155.txt";//需要转换的文件名

    int delay = 15; //定量增长的时间 (分钟)

    int count = 10; //增长的次数

    char minute[3],hour[3],day[3],month[3],year[5]; //获取增长后的时间

    //xiu——————test

    //cout<<"filename = "<<filename<<endl;
    //cout<<year<<"\t"<<month<<"\t"<<day<<"\t"<<hour<<"\t"<<minute<<endl;
    //cout<<t_year<<"\t"<<t_month<<"\t"<<t_day<<"\t"<<t_hour<<"\t"<<t_minute<<endl;

    for (int i = 0;i< count;i++)
    {
        char result_name[20]="";

        //计算下一个文件名
        computeNextFileName(filename,delay*i,minute,hour,day,month,year);

        //xiu-----------test

        //  cout<<year<<"\t"<<month<<"\t"<<day<<"\t"<<hour<<"\t"<<minute<<endl;

        //将结果存放于result_name中

        strcat(result_name,year);
        strcat(result_name,month);
        strcat(result_name,day);
        strcat(result_name,"_");
        strcat(result_name,hour);
        strcat(result_name,minute);
        strcat(result_name,".txt");

        cout<<result_name<<endl;

    }       

}
时间: 2024-10-06 04:36:25

以日期时间为文件名的字符串的定量增长的相关文章

sql server日期时间格式转换成字符串格式

转载自:http://www.cnblogs.com/zhangq723/archive/2011/02/16/1956152.html

Python学习笔记9:标准库之日期时间(time包,datetime包)

一 time包 sleep([float time]) 延迟一段以浮点数表示的秒数 time包基于C语言的库函数(library functions). Python的解释器一般是用C编写的,Python的一些函数也会直接调用C语言的库函数. time.time()获得当前时间,返回float型, 单位:秒 time.clock()在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳). 而在WINDOWS中,第一次调用,返回的是进程执行的实际时间.而第二次之后的调用

c/c++日期时间处理与字符串string转换

在c/c++实际问题的编程中,我们经常会用到日期与时间的格式,在算法运行中,通常将时间转化为int来进行计算,而处理输入输出的时候,日期时间的格式却是五花八门,以各种标点空格相连或者不加标点. 首先,在c中,是有一个标准的日期时间结构体的,在标准库wchar.h内,我们可以看到结构体tm的声明如下: 1 #ifndef _TM_DEFINED 2 struct tm { 3 int tm_sec; /* seconds after the minute - [0,59] */ 4 int tm_

mysql学习笔记(五)--- 字符串函数、日期时间函数

一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符为单位) CHAR_LENGTH()

20160421字符串类型;日期时间类型数学类型

第13天 2016-04-21 一.字符串类型   string Trim() - 去头尾的空格,中间的空格不能去. ToUpper() - 把字符串的字母全变成大写. ToLower() - 把字符串的字母全变成小写. StartsWith("子串") - 是否以“子串”开头,是-true EndsWith("子串") - 是否以“子串”结尾,是-true Contains("子串") - 是否包含“子串”,是-true Substring(起

技术杂记-日期时间字符串解析识别

日期时间的格式可谓千奇百怪,做数据汇集相关项目时就会需要识别各种日期时间格式(因为数据来源广泛不可控),然后转换为标准格式或Date类型. 我之前看到同事的一个时间解析方法,当时觉得已经很不错了,后来网上搜索发现这个方法在搜索结果中多次出现,来源就不清楚.我是因项目需要更精确的识别日期时间字符串,于是我慢慢改进原来的方法,以下就是改进后的方法,java语言实现,只要看懂逻辑,应该很容易翻译成其他语言. 1 /** 2 * 解析大部分常见日期格式 <br/> 3 * @param dateStr

MySQL字符串函数、日期时间函数

MySQL字符串函数.日期时间函数 一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符

爪哇国新游记之三十一----日期时间与字符串间的转化

1.由日期时间转化成字符串 Date date = new Date(); Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=formatter.format(date); 上述代码使用的是SimpleDateFormat的format函数 2.由字符串转化成日期时间 String dateStr1="20141216"; SimpleDateForma

java 日期和字符串互转,依据当天整天时间 得到当天最后一秒的日期时间

java 日期和字符串互转.依据当天整天时间   得到当天最后一秒的日期时间 package com.hi; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 依据当天整天时间 * 得到当天最后一秒 * 数据库查询时非常有意义 起始天 到结速天 比方按天查询 2014-06-17 00:00:00