1 条题解
-
0
C :
#include <stdio.h> #include <math.h> int m[][2]={0,0,31,31,28,29,31,31,30,30,31,31,30,30,31,31,31,31,30,30,31,31,30,30,31,31}; int leap(int year) { return((year%4==0&&year%100!=0)||(year%400==0)); } int day(int year,int month,int day) { int d=0; int k=0; int i; if(leap(year)) k=1; for(i=1;i<month;i++) d+=m[i][k]; d+=day; return(d); } main() { int y1,y2,m1,m2,d1,d2,day1,day2,i; while(scanf("%4d%2d%2d",&y1,&m1,&d1)!=EOF) { scanf("%4d%2d%2d",&y2,&m2,&d2); day1=day(y1,m1,d1); day2=day(y2,m2,d2); for(i=0;i<y1;i++) { if(leap(i)) day1+=366; else day1+=365; } for(i=0;i<y2;i++) { if(leap(i)) day2+=366; else day2+=365; } printf("%d\n",(int)fabs(day1-day2)+1); } }
C++ :
#include<stdio.h> #include<math.h> int m[13][2]={0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 31,31, 31,31, 30,30, 31,31, 30,30, 31,31}; int leap(int y) { return (y%4==0&&y%100!=0)||(y%400==0); } int day(int Y,int M,int D) { int k=0,i,d; if(leap(Y)) k=1; for(d=0,i=1;i<M;i++) d+=m[i][k]; d+=D; return d; } int main() { int Y1,M1,D1,Y2,M2,D2,i,d1,d2; while(scanf("%4d%2d%2d",&Y1,&M1,&D1)!=EOF) { scanf("%4d%2d%2d",&Y2,&M2,&D2); d1=day(Y1,M1,D1); d2=day(Y2,M2,D2); for(i=0;i<Y1;i++) if(leap(i)) d1+=366; else d1+=365; for(i=0;i<Y2;i++) if(leap(i)) d2+=366; else d2+=365; printf("%d\n",(int)fabs(d1-d2)+1); } return 0; }
Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int[][] month = {{0,0}, {31,31}, {28,29}, {31,31}, {30,30}, {31,31}, {30,30}, {31,31}, {31,31}, {30,30}, {31,31}, {30,30}, {31,31}}; int time1, y1, m1, d1; int time2, y2, m2, d2; while (in.hasNext()) { time1 = in.nextInt(); time2 = in.nextInt(); if (time1 > time2) { int temp = time1; time1 = time2; time2 = temp; } y1 = time1/10000; m1 = time1%10000/100; d1 = time1%100; y2 = time2/10000; m2 = time2%10000/100; d2 = time2%100; int ans = 1; while (y1<y2 || m1<m2 || d1<d2) { d1++; if (d1 == month[m1][isLeap(y1)]+1) { m1++; d1 = 1; } if (m1 == 13) { y1++; m1 = 1; } ans++; } System.out.println(ans); } } static int isLeap(int year) { if ((year%4 == 0 && year%100 != 0)||(year%400 == 0)) return 1; else return 0; } }
Python :
# coding=utf-8 months=[31,28,31,30,31,30,31,31,30,31,30,31] months1=[31,29,31,30,31,30,31,31,30,31,30,31] def leap(year): return ((year %4 ==0) and (year % 100 != 0)) or (year % 400 == 0) def calc(): date1 = int(input()) date2 = int(input()) if date1 == None or date2 == None: exit() if date1>date2: tmp = date1 date1 = date2 date2 = tmp y1 = date1//10000 y2 = date2//10000 m1 = date1 % 10000 // 100 m2 = date2 % 10000 // 100 d1 = date1 % 100 d2 = date2 % 100 res = 1 while (y1 < y2-1): if(leap(y1)): res += 366 else: res += 365 y1+=1 if y1 != y2: if(leap(y1)): res += sum(months1[m1:]) res += months1[m1-1] - d1 else: res += sum(months[m1:]) res += months[m1-1] - d1 if(leap(y2)): res += sum(months1[:m2-1]) else: res += sum(months[:m2-1]) else: if (m1 != m2): if(leap(y1)): res +=sum(months1[m1:m2-1]) res += months1[m1-1]-d1 else: res += sum(months[m1:m2-1]) res += months[m1-1]-d1 else: res -= d1 res +=d2 print(res) while True: calc()
- 1
信息
- ID
- 1280
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者