#include <iostream> using namespace std; int main(){ int year,month,day; while(cin>>year>>month>>day){ int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int date=0; if((year%4==0&&year%100!=0)||year%400==0){ a[1]=29; } for(int i=0;i<month-1;i++){ date+=a[i]; } cout<<date+day<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int monthtab[2][13]={//预设每月天数 {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; int IsLeapYear(int y){//判断是否为闰年 if(((y%4==0)&&(y%100!=0))||y%400==0){ return 1; }else{ return 0; } } int main(){ int y,m,d; while(scanf("%d%d%d",&y,&m,&d)!=EOF){ int num=0; int ans=IsLeapYear(y); for(int i=0;i<m;i++){ num+=monthtab[ans][i];//如果为闰年,ans=1,正好加的是monthtab数组的闰年那一行 } num+=d; cout<<num<<endl; } return 0; }
using namespace std; #include <iostream> #include <cstring> bool judge(int y){ if(y%4 == 0){ if(y % 100 == 0 and y%400){ return false; } return true; } return false; } int main(){ int sum[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 335} int y, m, d, ans; while(cin>>y>>m>>d){ if(m>2 and judge(y))ans = 1; else ans = 0; ans += sum[m-1]; cout<<ans<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; int md[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 getDayNo(int y, int m, int d) { int f = (y % 400 == 0) || ((y % 4 == 0) && y % 100); int ans = 0; for(int i = 1;i < m; i++) ans += md[i][f]; return (ans += d); } int main() { int y, m, d; while(cin >> y >> m >> d) { cout << getDayNo(y, m, d) << '\n'; } return 0; }
提交了好多遍都没有AC,发现原来是变量没有初始化为0;长个记性吧。
#include<stdio.h> int main(){ int year,month,day,res=0; int a[13] ={0,31,28,31,30,31,30,31,31,30,31,30,31}; scanf("%d%d%d",&year,&month,&day); for(int i = 1;i<month;i++) res +=a[i]; res+=day; if((year%4==0&&year%100!=0 || year%400 == 0)&&month>2) res=res+1; printf("%d\n",res); }
#include<iostream> using namespace std; bool is366(int year) { if(year % 400 == 0) return true; else if(year%100 == 0) return false; else if(year%4 == 0) return true; else return false; } int main() { int month365[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int month366[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int year, month, day; while(cin>>year>>month>>day) { int res=0; int *month_days=is366(year)?month366:month365; for(int i=0; i<month-1; ++i) res+=*(month_days+i); res+=day; cout<<res<<endl; } }
#include<iostream> using namespace std; bool isLeapyear(int y){ if((y%4==0&&y%100!=0)||y%400==0){ return true; } else{ return false; } } int main(){ int y,m,d; int monthday[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int sumday[13]={0};//数组如果不初始化会产生意想不到的结果 for(int i=1;i<=12;i++){//计算在第i个月之前月份的总天数 for(int j=1;j<i;j++){ sumday[i]+=monthday[j]; } } while(cin>>y>>m>>d){ int day=0; day=sumday[m]+d; if(isLeapyear(y)&&m>=3){ day++; } cout<<day<<endl; } return 0; }
import java.time.LocalDate; import java.time.temporal.ChronoUnit; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ int year = scanner.nextInt(); int mouth = scanner.nextInt(); int day = scanner.nextInt(); LocalDate date = LocalDate.of(year, mouth, day); LocalDate newYear = LocalDate.of(year, 1, 1); System.out.println(newYear.until(date, ChronoUnit.DAYS)+1); } } }
#include <iostream> using namespace std; int main() { const int month_day[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int year,month,day; while(cin >> year >> month >> day){ bool isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); for(int i = 0; i < month - 1; ++i) day += month_day[i]; cout << (month < 3 ? day : day + isLeapYear) << endl; } return 0; }
#include <iostream> using namespace std; int main() { int days[]={31,28,31,30,31,30,31,31,30,31,30,31}; int year,mon,day,i; while(cin>>year>>mon>>day) { int sum=0; if((year%4==0&&year%100!=0)||year%400==0) { days[1]=29; for(i=0;i<mon-1;i++) { sum+=days[i]; } sum+=day; } else { days[1]=28; for(i=0;i<mon-1;i++) { sum+=days[i]; } sum+=day; } cout<<sum<<endl; } return 0; }
import java.time.LocalDate; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextInt()) { LocalDate date = LocalDate.of(sc.nextInt(), sc.nextInt(), sc.nextInt()); System.out.println(date.getDayOfYear()); } sc.close(); } }
#include<iostream> using namespace std; int SmallYear[13] ={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int BigYear[13] ={0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool isBigYear(int year) { if((year % 100 != 0 && year % 4 == 0) ||(year % 100 == 0 && year % 400 == 0)) return true; return false; } int main() { int year, month, day; cin >> year >> month >> day; int ret = 0; if(isBigYear(year)) { for(int i = 1; i < month; i++) ret = ret + BigYear[i]; ret = ret + day; } else { for(int i = 1; i < month; i++) ret = ret + SmallYear[i]; ret = ret + day; } cout << ret << endl; }
#include<iostream> #include<cstring> #define ISLEAP(x) (x%4==0&&x%100!=0)||x%400==0?1:0 int YofM[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 }; struct Data { int data; int month; int year; Data() { data = 1; month = 0; year = 0; } void nextdata() { data++; if (data>YofM[month][ISLEAP(year)]) { month++; data = 1; if (month>12) { year++; month = 1; } }//if } }; int Daycount[3001][13][32]; int main() { Data D; int num = 0; while (D.year <= 3000) { Daycount[D.year][D.month][D.data] = num; D.nextdata(); num++; }//while int d, m, y; while (std::cin >> y >> m >> d) { int i = Daycount[y][m][d] - Daycount[y][1][1]; std::cout << i+1; }//while return 0; }
#include<stdio.h> int main (int argc, char *argv[]){ int daysOfMonth[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int y,m,d,days,i; for(;~scanf("%d %d %d",&y,&m,&d);) for(days=d,daysOfMonth[2]=(y%4==0&&y%100!=0) || (y%400==0)?29:28,i=0; i<m && (days += daysOfMonth[i] ); i==m-1?printf("%d\n",days):1,++i); }
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ String s=in.nextLine(); String year = s.split(" ")[0]; String firstDate=year+" "+"1"+" "+"1"; SimpleDateFormat sdf=new SimpleDateFormat("yyyy MM dd"); try { long val=sdf.parse(s).getTime()-sdf.parse(firstDate).getTime(); val/=(1000*24*60*60); System.out.println(val+1); } catch (ParseException e) { e.printStackTrace(); } } } }
#include<iostream> #include<cstdio> using namespace std; #define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0 ? 1 : 0 // 判断x 年是否为闰年 // 输入范围:年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31) // 3000 年 从 公元0年开始算相距天数也在int 的范围内 int num[3010][14][32] = {0}; // 存储每天到公元0年1月1日的天数 // 存储平年闰年的每个月有多少天 int days[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 }; // 存储日期的结构体 struct Date { int Day; int Month; int Year; void nextDay() { // 计算下一个日期 Day ++; if(Day > days[Month][ISYEAP(Year)]) { // 如果超过的当月的最大天数则Month ++; Day = 1; Month ++; if(Month > 12) { Month = 1; Year ++; } } } }; int main() { Date tmp; int cnt = 0; // 计数器 tmp.Day = 1; tmp.Month = 1; tmp.Year = 0; while(tmp.Year != 3001) { num[tmp.Year][tmp.Month][tmp.Day] = cnt; tmp.nextDay(); cnt++; } int y, m, d; while(cin >> y >> m >> d) { cout << num[y][m][d] - num[y][1][1] + 1 << endl; } return 0; }
#include <stdio.h> const int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int main(){ for(int y,m,d;~scanf("%d%d%d",&y,&m,&d);printf("%d\n",d)){ for(int i=1;i<m;d+=month[i++]); if (y%400==0 || (y%100 && y%4==0)) d+=(m>2?1:0); } return 0; }
import datetime
while True:
try:
a,b,c=map(int,input().split())
dd=datetime.datetime(a,b,c)
print(dd.strftime("%j").lstrip("0"))
except:
break
import datetime
while True:
try:
print(datetime.datetime(*map(int,input().split())).strftime("%j").lstrip("0"))
except:
break
我就想问,还有哪种语言比这个更简单。。