首页 > 试题广场 >

编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一

[问答题]

编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入20041231235959秒,则输出200511000秒。

function later(){
    var t = prompt("请输入年月日时分秒(格式:'YYYY-MM-DD hh:mm:ss'):");
    var pattern = /^\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}$/;
    while(!pattern.test(t.trim())){
        alert("格式错误,请重新输入!");
        t = prompt("请输入年月日时分秒(格式:'YYYY-MM-DD hh:mm:ss'):");
    }
    var later = new Date(+new Date(t)+1000),
        YYYY = later.getFullYear(),
        MM = later.getMonth() + 1,
        DD = later.getDate(),
        hh = later.getHours(),
        mm = later.getMinutes(),
        ss = later.getSeconds();
    return YYYY+"-"+MM+"-"+DD+" "+hh+":"+mm+":"+ss;
}

编辑于 2017-10-26 00:01:25 回复(4)
System.out.println("请输入年月日时分秒(格式:2017年09月30日23时59分59秒):");
//接收用户输入一个日期
Scanner scan=new Scanner(System.in);
String before=scan.next();
/*
* 将用户输入的字符串转化为日期类型并格式化
* 如果设置为"yyyy/MM/dd HH:mm:ss"这种格式,空格后面的时分秒无法读取,运行时会报错
*/
SimpleDateFormat fmt=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
Calendar calendar=Calendar.getInstance();
calendar.setTime(fmt.parse(before));
//加1秒
calendar.add(Calendar.SECOND, 1);
//输出2017年10月01日00时00分00秒
System.out.println("加1秒后的时间为:"+fmt.format(calendar.getTime())); 

发表于 2017-09-18 22:26:45 回复(17)
1,获取输入的时间 2,将获取的时间转化为时间戳 3,将时间戳加上1秒,后转化为Date后格式化输出
发表于 2017-10-18 20:32:08 回复(1)
package cn.itcast.牛客;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。
 *  如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。
 * 
 * @author ZLJ
 *
 */
public class TimeAdd {
	public static void main(String[] args) {
		// 创建对象
		Calendar c = Calendar.getInstance();
		// 2004年12月31日23时59分59秒 第一个月是0,最后一个月是11
		c.set(2004, 12 - 1, 31, 23, 59, 59);

		Date beforetime = c.getTime();
		String before = formatdemo(beforetime);
		System.out.println("修改前的时间是:" + before);
		// 添加1秒
		c.add(Calendar.SECOND, 1);
		Date aftertime = c.getTime();
		String after = formatdemo(aftertime);
		System.out.println("修改后的时间是:" + after);

	}

	// 格式化日期
	public static String formatdemo(Date date) {

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");// 创建日期格式化类对象
		String format = sdf.format(date);
		return format;

	}
} 
第一次发帖,望指正

发表于 2017-08-22 19:39:09 回复(11)
/* 
    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。  
    如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。
  */ 
SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String before = "2004/12/31 23:59:59";
Calendar calendar = Calendar.getInstance();
calendar.setTime(fmt.parse(before));
calendar.add(Calendar.SECOND, 1);
System.out.println("old:" + before);
System.out.println("new:" + fmt.format(calendar.getTime()));

发表于 2017-08-23 19:19:15 回复(11)
挖槽,你们是用的基础语法写的吗,为啥我一个都看不懂
发表于 2018-01-19 00:07:06 回复(1)
获取当前的时间,用getTime()获取当前毫秒数,加1000,再把加了1000的这个数用dateformat的format方法转成时间对应的字符串,然后输出就可以了
发表于 2017-09-12 20:11:11 回复(6)
import re
import time
class NextSecond(): 
    def next_seconf(self,str):
        s_list=re.findall("\d+",str)
        s="".join(s_list)
        strptime=time.strptime(s,"%Y%m%d%H%M%S")
        timestamp=time.mktime(strptime)
        new_timestamp=timestamp+1 
        new_str=time.localtime(new_timestamp)
        dt=time.strftime("%Y-%m-%d %H:%M:%S", new_str)
        dt_list=re.findall("\d+", dt) 
        return"%s年%s月%s日%s时%s分%s秒"% (dt_list[0], dt_list[1], dt_list[2], dt_list[3], dt_list[4], dt_list[5]) 
if __name__=='__main__': 
    a=NextSecond()
    printa.next_seconf("2017年11月09日23时53分59秒") 
    printa.next_seconf("2004年12月31日23时59分59秒")


编辑于 2017-11-09 18:05:07 回复(3)
//输入年月日时分秒,输出+1秒,并格式化,不考虑恶意输入数字(正则太差OvO)
(function(str){
  var reg = /^(\d{4})\u5E74(\d{2})\u6708(\d{2})\u65E5(\d{2})\u65F6(\d{2})\u5206(\d{2})\u79D2$/;
  if(str.match(reg) == null) {
    return false;
  }
  var arr = reg.exec(str);
  var sometime = new Date();
  sometime.setFullYear(arr[1]);
  sometime.setMonth(arr[2]-1);
  sometime.setDate(arr[3]);
  sometime.setHours(arr[4]);
  sometime.setMinutes(arr[5]);
  sometime.setSeconds(arr[6]);
  
  var later = new Date(sometime.valueOf()+1000);
  console.log(later.getFullYear()+'年'+(later.getMonth()+1)+'月'+later.getDate()+'日'+later.getHours()+'时'+later.getMinutes()+'分'+later.getSeconds()+'秒');

})('2004年12月31日23时59分59秒');

发表于 2017-08-23 14:54:43 回复(0)
var t=prompt('请输入时间,格式 如2012-07-01 23:01:55')
        var now = new Date(t).getTime()
        var need= new Date(t).getTime()+1000
        console.log(new Date(now))
        console.log(new Date(need))
发表于 2018-05-01 16:11:18 回复(1)
将日期转换为date对象然后在此对象基础上+1s获得新的date
发表于 2017-08-23 01:59:10 回复(0)
保证输入格式相通,将字符串转为Date,在通过运算加1秒的Date,得到新的Date,再将Date转为字符串输出
发表于 2017-08-22 00:20:48 回复(1)
function getNextSecond(time){ //输入一个时间点,返回下一秒的时间点 //输入格式:x-x-x-x-x-x var array = time.split('-'); var year = array[0], month = array[1]-1, date = array[2], hour = array[3], minute = array[4], second = array[5]; var nex = new Date(year, month, date, hour, minute, ++second); var newArr = [nex.getFullYear(), nex.getMonth()+1, nex.getDate(), nex.getHours(), nex.getMinutes(), nex.getSeconds()]; return newArr.join('-'); } console.log(getNextSecond('2000-12-31-23-59-59'));
发表于 2018-07-23 21:59:04 回复(2)
using System;
public class Programe
{
    /// <summary>
    /// 输出时间***后的日期
    /// </summary>
    /// <param name="year"></param>
    /// <param name="month"></param>
    /// <param name="day"></param>
    /// <param name="hour"></param>
    /// <param name="minutes"></param>
    /// <param name="seconds"></param>
    private static void AddOneSecond(int year, int month, int day, int hour, int minutes, int seconds)
    {
        if (year >= 1979 && year <= 2018 && month >= 1 && month <= 12 && day >= 1 && day <= 31 && hour >= 1 && hour <= 24 && minutes >= 0 && minutes <= 59 && seconds >= 0 && seconds <= 59)
        {
            DateTime dateTime = DateTime.MinValue.AddYears(year - 1).AddMonths(month - 1).AddDays(day-1).AddHours(hour).AddMinutes(minutes).AddSeconds(seconds + 1);
            Console.WriteLine("***后,时间为"+dateTime);
        }
        else {
            Console.WriteLine("您的输入有误!");
        }          
   }
    /// <summary>
    /// 输入时间
    /// </summary>
    /// <param name="args"></param>
    public static void Main(string[] args)
    {
        Console.Write("请依次输入年(1979~2018)、月(1~12)、日(1~31)、时(1~24)、分(0~59)、秒(0~59):");
       
        int year = int.Parse(Console.ReadLine());
        int month = int.Parse(Console.ReadLine());
        int day = int.Parse(Console.ReadLine());
        int hour = int.Parse(Console.ReadLine());
        int minutes = int.Parse(Console.ReadLine());
        int seconds = int.Parse(Console.ReadLine());
        Console.WriteLine("您输入的时间为{0}年{1}月{2}日,{3}:{4}:{5}",year,month,day,hour,minutes,seconds);
       AddOneSecond(year,month,day,hour,minutes,seconds);
        Console.ReadKey();
    }
}
发表于 2018-07-21 19:40:54 回复(0)
考虑使用内置函数
发表于 2018-05-01 01:21:18 回复(0)
    class Program
    {
        static void Main(string[] args)
        {
            string input = string.Empty;
            do
            {
                Console.Write("please enter the DataTime(eg:2004/31/23 23:59:59):");
                input = Console.ReadLine();
                try
                {
                    DateTime time = Convert.ToDateTime(input);
                    Console.WriteLine("The DataTime For Next SecondTime : {0}", time.AddSeconds(1));
                }
                catch
                {
                    if (input.ToUpper() != "Q")
                    {
                        Console.WriteLine("Your DataTime Format Error!");
                    }
                }
            }
            while (input.ToUpper() != "Q");
        }
    }
发表于 2018-04-10 22:48:05 回复(0)
def ptime(Y,m,d,H,M,S):
    d=datetime(Y,m,d,H,M,S).timestamp()+1
    print(datetime.fromtimestamp(d).strftime("%Y-%m-%d %H:%M:%S"))
发表于 2018-03-20 22:47:52 回复(0)
package com.shamgod.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.Scanner; public class Test1 { public static void main(String[] args) throws Exception { System.out.println("请输入日期(按照xxxx年xx月xx日xx时xx分xx秒的格式):"); Scanner scanner = new Scanner(System.in); //输入的字符串 String input = scanner.next(); //加一秒方法,返回输出字符串 String output = addOneSecond(input); //将输出字符串输出 System.out.println(output); } /* * 加一秒方法 */ public static String addOneSecond(String input) throws Exception{ //指定输入格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); //将输入字符串转换为Date Date inputDate = sdf.parse(input); //获取毫秒数(返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。) long time = inputDate.getTime(); //创建Calendar对象 Calendar calendar = Calendar.getInstance(); //将毫秒加1000,也就是加一秒 long timeInMillis = time + 1000; //设置给calendar对象 calendar.setTimeInMillis(timeInMillis); //调用calendar的getTime()获取Date对象 Date outputDate = calendar.getTime(); //转换为字符串返回 return sdf.format(outputDate); } }
发表于 2018-01-03 23:08:25 回复(0)
转换成时间戳+1秒 然后再转回来
发表于 2017-09-29 00:47:57 回复(0)
function Adds(date){
    var newDate = new Date(new Date(date.replace('年','-').replace('月','-').replace('日',' ').replace('时',':').replace('分',':').replace('秒','')).getTime() + 1000);
    var y = newDate.getFullYear();
    var m = newDate.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = newDate.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = newDate.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = newDate.getMinutes();
    minute = minute < 10 ? ('0' + minute) : minute;
    var second = newDate.getSeconds();
    second = second < 10 ? ('0' + second) : second;
    return y + '年' + m + '月' + d+'日'+h+'时'+minute+'分'+second+'秒';
}
Adds('2004年12月31日23时59分59秒');

发表于 2019-12-24 12:07:56 回复(0)