精华内容
下载资源
问答
  • 主要介绍了Go语言计算指定年月天数方法,实例分析了Go语言操作时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • c语言编写代码,输入年月日后可计算出输入年已过天数
  • #include<stdio.h> int main() { int F(int ,int ); int K(int ); int year1,month1,day1,a,b,h,m,n;...printf(“请输入以前年月日:”); scanf("%d %d %d",&year1,&month1,&day...

    #include<stdio.h>
    int main()
    {
    int F(int ,int );
    int K(int );
    int year1,month1,day1,a,b,h,m,n;
    int year,month,day,d,e,f=0,g;
    printf(“请输入以前年月日:”);
    scanf("%d %d %d",&year1,&month1,&day1);
    printf(“请输入现在年月日:”);
    scanf("%d %d %d",&year,&month,&day);
    a=F(month1,day1);
    if(K(year1)1&&(month1>=3))
    a=a+1;
    d=F(month,day);
    if(K( year )1&&(month>=3))
    d=d+1;
    if(year1>year)
    printf(“输入错误”);
    if(year1
    year)
    {
    if(month1>month)
    printf(“输入错误”);
    if((month1
    month)&&(day1<day))
    printf("%d年%d月%d日距离%d年%d月%d日总共是%d天",year1,month1,day1,year,month,day,day-day1);
    if((month1==month)&&(day1>day))
    printf(“输入错误”);
    if(month1<month)
    {
    h=F(month1,day1);
    m=F(month,day);
    n=m-h;
    printf("%d年%d月%d日距离%d年%d月%d日总共是%d天",year1,month1,day1,year,month,day,n);
    }
    }
    if(year1<year)
    {
    for(e=year1+1;e<=year-1;e++)
    {
    if(K(year)1)
    f=f+366;
    else
    f=f+365;
    }
    if(K(year1)1)
    g=f+d+366-a;
    else
    g=f+d+365-a;
    printf("%d年%d月%d日距离现在%d年%d月%d日总共是%d天",year1,month1,day1,year,month,day,g);
    }
    return 0;
    }
    int F(int month,int day)
    {
    int i,b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    for(i=1;i<=month-1;i++)
    {
    day=day+b[i];
    }
    return day;
    }
    int K(int year)
    {
    int c;
    c=year%4
    0&&year%100!=0||year%400
    0;
    return c;
    }

    展开全文
  • 两个 年月日 之间的天数计算

    千次阅读 2015-08-15 12:46:09
    /* * Date : 2015.08.13 ...计算从固定时间点 2010.1.1 以来的天数 2.计算两个普通日期之间相隔的天数 * Tool : Microsoft Visual Studio 2013 */ #define _CRT_SECURE_NO_WARNINGS #include #include <stdlib.h>
    /*
    *   Date : 2015.08.13
    *   For  : 1.计算从固定时间点 2010.1.1 以来的天数    2.计算两个普通日期之间相隔的天数
    *   Tool : Microsoft Visual Studio 2013
    */
    
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctime>
    
    void currenttime(time_t t, int &nowyear, int &nowmonth, int &nowday, int &nowyearday)
    {
        tm *nowtime = localtime(&t);
        nowyear = nowtime->tm_year + 1900;
        nowmonth = nowtime->tm_mon + 1;
        nowday = nowtime->tm_mday;
        nowyearday = nowtime->tm_yday;
    }
    
    bool isleapyear(int year)           //判断是否闰年
    {
        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0; 
    }
    
    int daysofyear(int year)            //一年的天数
    {
        if (!isleapyear(year))
            return 365;
        else
            return 366;
    }
    
    int dayinyear(int year, int month, int day)         //根据年月日,判断改天位于该年的第多少天
    {
        int daysinyear = 0;
        switch (month - 1)
        {
        case 11:daysinyear += 30;
        case 10:daysinyear += 31;
        case 9: daysinyear += 30;
        case 8: daysinyear += 31;
        case 7: daysinyear += 31;
        case 6: daysinyear += 30;
        case 5: daysinyear += 31;
        case 4: daysinyear += 30;
        case 3: daysinyear += 31;
        case 2: daysinyear += 28;
        case 1: daysinyear += 31;
            break;
        default:
            break;
        }
        if (isleapyear(year) && month > 2)
            daysinyear++;
        daysinyear += day;
        return daysinyear;
    }
    
    int totalfixeddays()                //固定时间点的天数计算
    {
        int beginyear = 2010, beginmonth = 1, beginday = 1;
        int nowyear, nowmonth, nowday, nowyearday;
        int totaldays = 0;
        currenttime(time(NULL), nowyear, nowmonth, nowday, nowyearday);
        printf("        *************************************************\n");
        printf("        *                                               *\n");
        printf("        *                 固定时间间隔                  *\n");
        printf("        *               Begin:2010. 1. 1               *\n");
        printf("        *               Today:%d.%2d.%2d               *\n", nowyear, nowmonth, nowday);
        printf("        *                                               *\n");
        printf("        *************************************************\n");
        printf("        *                                               *\n");
        for (int year = beginyear; year < nowyear; year++)
            totaldays += daysofyear(year);
        int oldyeardays = dayinyear(beginyear, beginmonth, beginday);
        totaldays = totaldays + nowyearday - oldyeardays + 1;
        return totaldays;
    }
    
    int totalcommondays()           //两个普通时间点的天数计算
    {
        int oldyear, oldmonth, oldday, newyear, newmonth, newday;
        int totaldays = -1;
        printf("        *     请输入两个时间点(年 月 日) 空格间隔     *\n");
        scanf("%d%d%d%d%d%d", &oldyear, &oldmonth, &oldday, &newyear, &newmonth, &newday);
        if (oldyear <= newyear)
        {
            totaldays += 1;
            for (int year = oldyear; year < newyear; year ++)
            {
                totaldays += daysofyear(year);
            }
            totaldays = totaldays + dayinyear(newyear, newmonth, newday) - dayinyear(oldyear, oldmonth, oldday);
        }
        printf("        *************************************************\n");
        printf("        *                                               *\n");
        printf("        *                   起始时间                    *\n");
        printf("        *               Begin:%d.%2d.%2d               *\n", oldyear, oldmonth, oldday);
        printf("        *               Until:%d.%2d.%2d               *\n", newyear, newmonth, newday);
        printf("        *                                               *\n");
        printf("        *************************************************\n");
        printf("        *                                               *\n");
        return totaldays;
    }
    
    void print_fixeddays()          //输出固定时间间隔
    {
        printf("        *              Together :%5d 天              *\n", totalfixeddays());    
        printf("        *                                               *\n");
        printf("        *************************************************\n");
    }
    
    void print_commondays()         //输出普通时间间隔
    {
        int days = totalcommondays();
        if (days >= 0)
            printf("        *              Together :%5d 天              *\n", days);
        else
            printf("        *   Error : Begin days is later than End days   *\n");  
        printf("        *                                               *\n");
        printf("        *************************************************\n");
    }
    
    void print(int choose)          //输出函数
    {
        switch (choose)
        {
        case 1:
            print_fixeddays();
            break;
        case 2:
            print_commondays();
            break;
        default:
            printf("    Wrong input number !\n\n");
            break;
        }
    }
    
    int main()
    {
        printf("        **输入指令:1(固定天数计算) 2(普通天数计算)**\n");
        int choose;
        scanf("%d", &choose);
        print(choose);
        system("pause");
        return 0;
    }
    效果图

    这里写图片描述

    这里写图片描述

    展开全文
  • 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器...
    展开全文
  • java计算年月日天数

    千次阅读 2014-03-08 16:04:31
    本文有两个小程序:输入两个年月日,该程序输出两时间的间隔天数。 第一个可以对用户输入的不恰当时间报错,第二个是第一个程序的简化版本,不会报错,只有用户输入正确的日期后才能得出正确的天数差。 日期...
    本文有两个小程序:输入两个年月日,该程序输出两时间的间隔天数。
    第一个可以对用户输入的不恰当时间报错,第二个是第一个程序的简化版本,不会报错,只有用户输入正确的日期后才能得出正确的天数差。

    日期天数差计算程序:

    import java.util.Scanner;
    public class Time3 {
    public static void main(String[]args){
    Scanner in=new Scanner(System.in);
    System.out.println("Input the present time (Format:year(Press enter) month(Press Enter) day(Press Enter)):");
    //Y1、M1、D1与Y2、M2、D2分别代表“当前年月日”和“先于当前的指定年月日”,为计算的需要,其中Y1、Y2定义为double类型
    double Y1=in.nextInt();
    int M1=in.nextInt();
    while(M1<1||M1>12){
    System.out.println("The "+M1+"th month dosen't exist,please try again");
    M1=in.nextInt();}//确保输入的月份是1-12中整数
    int D1=in.nextInt();
    while(D1>MaxDay(Y1,M1)||D1<1){
    System.out.println("The "+M1+"th month doesn't have the "+D1+"th day,please input the day again");
    D1=in.nextInt();}//确保输入的日期在指定月份天数范围(函数MaxDay)内
    System.out.println("Input the former time (Format:year(Press enter) month(Press Enter) day(Press Enter)):");
    double Y2=in.nextInt();
    while(Y2>Y1){
    System.out.println("the former year can't be later than the present time,please try again");
       Y2=in.nextInt();}
    int M2=in.nextInt();
    while(M2<1||M2>12){
    System.out.println("The "+M2+"th month dosen't exist,please try again");
    M2=in.nextInt();
    if(Y2==Y1){
    while(M2>M1){
    System.out.println("the former month in the same year can't be later than the present month,please input the month again");
       M2=in.nextInt();}
    }//确保输入的月份是1-12中整数并且当同一年时,月份2(M2)要早于月份1(M1)
    }
    int D2=in.nextInt();
    while(D2>MaxDay(Y2,M2)||D2<1){
    System.out.println("The "+M2+"th month doesn't have the "+D2+"th day,please input the day again");
    D2=in.nextInt();
    if(M2==M1){
    while(D2>D1){
    System.out.println("the former day in the same month and year can't be later than the present day,please input the day again");
       D2=in.nextInt();}}//确保输入的日期在指定月份天数范围(函数MaxDay)内,并且当同年同月时确保日期2(D2)早于日期1(D1)
    }
    in.close();
    
    
    int m=(int)(F(Y1,M1,D1)-F(Y2,M2,D2));//F()计算两个不同时间与基准日期的距离,再计算它们的差,就是这两个时间的差
    int Y1_int=(int)Y1;//类型转化,输出的Y1、Y2不含小数位
    int Y2_int=(int)Y2;
    //下面根据天数决定输出语句的单复数形式
    if(m>1)
    System.out.println("The time interval between "+Y1_int+"-"+M1+"-"+D1+" and "+Y2_int+"-"+M2+"-"+D2+" are "+m+" days");
    else
    System.out.println("The time interval between "+Y1_int+"-"+M1+"-"+D1+" and "+Y2_int+"-"+M2+"-"+D2+" is "+m+" day");
    
    }
    
    //F(x,y,z)返回"x年y月z日"与"公元0001年01月01日"的差值天数
        public static double F(double year,int month,int day){
    double Intervals_to_1_1_1;int i;int sum=0;
    int []M={31,28,31,30,31,30,31,31,30,31,30,31};
    for(i=0;i<month-1;i++)
    sum=sum+M[i];
    if(Judge_leap(year)&&month>2) 
    sum++;
    Intervals_to_1_1_1=365*(year-1)+Math.floor((year-1)/4)-Math.floor((year-1)/100)+Math.floor((year-1)/400)+sum+day-1;
    return Intervals_to_1_1_1;
       }    
     //Judge——leap(year)函数判断year年是否是闰年
        public static boolean Judge_leap(double year){
        boolean leap;
        leap=(year%400==0||(year%100!=0&&year%4==0)) ;
        return leap;
        }   
     //MaxDay(year,month)返回 year年year月的总天数 
        public static int MaxDay(double year,int month){
        int []M={31,28,31,30,31,30,31,31,30,31,30,31};
        if(Judge_leap(year)&&month==2) 
        return 29;
        else
        return M[month-1];
        }
    }
    简化版本:

    ///这是一个简化版本,它要求用户输入两个【正确】的时间,才能正确的输出时间间隔天数
    import java.util.Scanner;
    public class Time_Simplified {
    		public static void main(String[]args){	
    		Scanner in=new Scanner(System.in);
    		
    		System.out.println("Input the present time (Format:year(Press enter) month(Press Enter) day(Press Enter)):");
    		double Y1=in.nextInt();
    		int M1=in.nextInt();
    		int D1=in.nextInt();
    		
    		System.out.println("Input the former time (Format:year(Press enter) month(Press Enter) day(Press Enter)):");
    		double Y2=in.nextInt();
    		int M2=in.nextInt();
    		int D2=in.nextInt();
    		in.close();
    		int m=(int)(F(Y1,M1,D1)-F(Y2,M2,D2));
    		System.out.println(m+"day(s)");
    		}
    		
    	    public static double F(double year,int month,int day){
    			double Intervals_to_1_1_1;int i;int sum=0;
    			int []M={31,28,31,30,31,30,31,31,30,31,30,31};
    			for(i=0;i<month-1;i++)
    				sum=sum+M[i];
    			if((year%400==0||(year%100!=0&&year%4==0))&&month>2) 
    				sum++;
    			Intervals_to_1_1_1=365*(year-1)+Math.floor((year-1)/4)-Math.floor((year-1)/100)+Math.floor((year-1)/400)+sum+day-1;
    			return Intervals_to_1_1_1;
    		    }
    }



    展开全文
  • * 计算两个日期之间相差的整数,日期是××××年××月××00时00分00秒 如果不足一个月按照一个月计算 */ public static int betweenMonth(Date begin, Date end) { Calendar begin= Calendar....
  • Sql年月日计算方法

    千次阅读 2007-03-19 19:43:00
    你们大部分人大概都知道怎样把日期进行分割(年、月、等),然后仅仅用分割出来的年、月、等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序...
  • 一:通过时间戳除以每天的秒数,得到当前的天数,主要用来比较天数,用来制作不带时分秒的Date。 NSTimeInterval interval = [[NSDate date] timeIntervalSince1970]; int daySeconds = 24 * 60 * 60; NSInteger ...
  • 给出两个年月日 求出天数差。 如果从一月份算到十二月份,由于闰年和平年二月的天数不同,计算过程会有点麻烦,因此作如下转换。 将三月初到下一年的二月底看作一个完整的一年 ,如图所示。 将元年作为...
  • 年月周星期计算年月日 C++题目参考资料注意思路c++代码 题目 输入年、月、第几周、周几,输出对应的 年、月、。 参考资料 1.https://blog.csdn.net/qq_42403069/article/details/86305578 2....
  • Sql年月日计算方法

    2012-03-21 11:28:37
    你们大部分人大概都知道怎样把日期进行分割(年、月、等),然后仅仅用分割出来的年、月、等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序...
  • 加入给你两个年月日的日期,让你计算它们两个之间共有多少天,我们可以分为以下几种情况:↓↓↓ 1.两个年份相等:首先判断是否为闰年,接下来, ①如果对应的月份也相等,直接用大的天数减去小的天数。例如:...
  • <p>import java.util.Scanner; public class mokuaiyizuoyi  ...请输入");  int c = sc.nextInt();  System.out.println(d); <p><br />  } }  </p>
  • 闲来无事,重学c语言 #include <stdio.h> #include <math.h> void main(){ int a,b,c,d; printf("pls input year/m/d:\n"); scanf("%d %d %d",&a,&b,&c); switch (b) { cas...
  • js获取年月日和当月的天数
  • 输入年月日天数

    2020-06-14 17:47:03
    下面来介绍一下如何通过C编程来实现输入年月日天数的求解,具体如下: 问题描述:当输入年月日后,即可推断该日期是这一年的第几天。 #include <stdio.h> struct{ int year; int month; int day; }date; ...
  • sql年月日计算方法

    2007-12-12 08:58:00
    你们大部 分人大概都知道怎样把日期进行分割(年、月、等),然后仅仅用分割出来的年、月、等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你 如何使用DATEADD和DATEDIFF函数来计算出在你的...
  • 主要为大家详细介绍了C#实现根据年月日计算星期几的函数,感兴趣的小伙伴们可以参考一下
  • 某天接到根据生日计算年月日的岁数需求,立马开干, 代码如下: public static String getAge(String birthDay) { if (birthDay == null) { return "未知"; } String[] data = birthDay.split("-"); if ...
  • javascript 根据年月计算天数

    千次阅读 2007-12-17 17:30:00
    //取年月份的天数方法1function GetDays(Year,Month){ d = new Date(Year,Month,0); var Days = d.getDate(); removevalue(frm1.day); addvalue(frm1.day,Days)}//取年月份的天数方法2function GetDays0...
  • 任意输入一个年月日,可计算出它是本年度的第几天。
  • 1 public class TimeTool ... 3 //根据出生年月计算 整数天 4 private static int GetAgeByBirthdate(DateTime birthdate) 5 { 6 DateTime now = DateTime.Now; 7 int age = now.Year - birthdate.Year; 8 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,159
精华内容 6,063
关键字:

年月日天数计算方法