আমাকে শুভ জন্মদিন!


21

আমাকে শুভ জন্মদিন!

এমন একটি প্রোগ্রাম লিখুন যা Happy birthday to me!তার জন্মদিনে মুদ্রণ করে।

  1. প্রোগ্রামটির জন্মদিন হ'ল প্রোগ্রামটি তৈরি করা, শেষ পরিবর্তন বা সংকলনের সময় (আপনি চয়ন করেন) এবং অবশ্যই হার্ড-কোডেড হওয়া উচিত নয়।
  2. জন্মদিন হিসাবে আপনি যে তারিখটি ব্যবহার করবেন তা অবশ্যই কোনওভাবে প্রোগ্রামের অনুরোধ বা সম্পাদন দ্বারা প্রভাবিত হবে না। আপনি আপনার জন্মদিন পরিবর্তন করতে পারবেন না।
  3. অতিরিক্ত ক্রেডিটের জন্য (-15% বাইট গণনা), Happy birthday to you!আপনার জন্মদিনে মুদ্রণ করুন (হার্ড কোডড), যদি এটি প্রোগ্রামের সাথে মিলে না যায় । অথবা কিছু সেলিব্রিটির জন্মদিন ব্যবহার করুন এবং -14% পান।
  4. এটি অবশ্যই এটি মুদ্রণ করতে হবে, এবং অন্য কোনও দিন মুদ্রণ করবে না।
  5. ইউটিএফ -8 এ বাইটস গণনা করুন।
  6. গ্রেগরিয়ান ক্যালেন্ডার ব্যবহার করুন।

শুভকামনা এবং শুভ জন্মদিন (নবজাতকের প্রোগ্রামগুলিতে)।

দ্রষ্টব্য
যদি আপনি মুদ্রণ Izkata এর মন্তব্য অনুসরণ Happy birthday to Melউপর মেল Kaye এর জন্মদিনের, আপনি 20% নামবো। তবে আপনাকে একটি বিশ্বাসযোগ্য উত্স সরবরাহ করতে হবে যে এটি এই তারিখ।


1
@ টিউনপ্রনক, আপনি দুটোই করতে পারবেন না। হয় আপনার নিজের জন্মদিন, বা কোনও সেলিব্রিটির (বা কোনও নয় এবং অতিরিক্ত ক্রেডিট ছেড়ে দিন) ব্যবহার করুন।
ugoren

4
@ টিউনপ্রনক: কেবল জন স্কিটিই পারেন: পি
এমসাল্টার

11
আমি হট প্রশ্নগুলির সাইডবারে এটি দেখেছি এবং " মেল এর শুভ
ইজকাটা

1
@ পিটারটেলর: হাহ? অতিরিক্ত বৈশিষ্ট্যগুলির জন্য বিভিন্ন ধরণের স্কোর বোনাস প্রদান করা কোড-গল্ফ প্রশ্নের জন্য খুব সাধারণ এবং আমি আগে কখনও কাউকে দাবি করতে দেখিনি যে এটি প্রাথমিকভাবে স্কোরিং মানদণ্ডের কোড দৈর্ঘ্য না হওয়া পর্যন্ত এই ট্যাগটি ব্যবহার করে কোনও প্রশ্নকে অযোগ্য ঘোষণা করবে ।
ইলমারি করোনেন

1
@ ইজকাটা, মেলের সম্মানে প্রশ্ন আপডেট করেছেন।
উগোরেন

উত্তর:


10

পিএইচপি 77 75 74 65 60

টিম সেগুয়েনের দুর্দান্ত পরামর্শের জন্য অনেক ধন্যবাদ :

<?date(dm,getlastmod())-date(dm)&&die?>Happy birthday to me!

স্নিগ্ধ পিএইচপি: 46 42 41 40

ব্যবহার ফিল এইচ এর ধারণা এবং আবার টিম Seguine এর পরামর্শ :

<?touch(__FILE__)?>Happy birthday to me!

এটি তুলনায় বছরের অন্তর্ভুক্ত না? যদি তা হয় তবে এটি কেবল 0 তম জন্মদিনে কাজ করে।
ugoren

আপনি ঠিক বলেছেন! সংশোধনীর জন্য ধন্যবাদ. 2 বাইট সংরক্ষণ করা হয়েছে।
কমফ্রিচ

যদি নিয়মে "কিছু প্রিন্ট না করে" মানে স্ট্যান্ডার্ড আউটপুট বোঝানো হয়, তবে আপনি স্ট্রিংগুলির ''চারপাশে সরিয়ে 4 বাইট জিততে পারেন dm। এটি একটি সতর্কবার্তা উত্পন্ন করেছে, তবে আমি বিশ্বাস করি যে ত্রুটি প্রতিবেদন চলমান থাকলে এটি স্ট্যান্ডার্ড ত্রুটিতে প্রেরণা পায়।
টিম সেগুইন

4
<?date(dm,stat(__FILE__)[9])-date(dm)&&die?>Happy birthday to me!
টিম সেগুইন

1
@ টিমসিগুইন আপনার পরামর্শের জন্য ধন্যবাদ! আমি তাদের আমার উত্তরে অন্তর্ভুক্ত করেছি, আশা করি আপনি আপত্তি করবেন না।
কমফ্রিচ

48

বাশ (লুক্কায়িত): 36

touch $0;echo Happy Birthday to me\!

বিধি অনুসারে: "প্রোগ্রাম তৈরি, সংশোধন বা সংকলনের সময়"। আমি পরিবর্তনের সময় এবং একটি স্থায়ী স্ব-পরিবর্তন চাই। [এইচটি @ 1 চরের জন্য স্থান]

পার্ল (এছাড়াও লুক্কায়িত): 29

print "Happy birthday to me!"

এটি প্রথমটির চেয়ে তর্কাতীতভাবে কম লুক্কায়িত; পার্ল প্রোগ্রামগুলি কার্যকর করার আগে সর্বদা সংকলিত হয়, যা প্রত্যেকেই জানে না - দেখুন, স্নিগ্ধতার উপরে একটি শিক্ষাগত স্পিন রয়েছে। সুতরাং এখানে এটি সংকলনের তারিখটি আমি ব্যবহার করছি।

- নিয়ম পরিবর্তনের জন্য সম্পাদনা করুন -

আপনার জন্মদিন পরিবর্তনের বিষয়ে কোনও নিয়ম থাকার আগে এটি লেখা হয়েছিল। আমি মনে করি পার্ল এখনও দাঁড়িয়ে আছে; সমস্ত পার্ল প্রোগ্রামগুলি চালনার আগে সংকলিত হয়। আমি উত্তর এখানে শিক্ষাগত কারণে ছেড়ে দেব!


6
ঠিক আছে, প্রতারক, চতুরতার জন্য আমার +1 পান।
ভিক্টর স্টাফুসা

1
আপনি এর !সাথে পালাতে পারেন \!এবং 1
চরটি

1
দুর্দান্ত কৌশল, তবে নিয়মগুলি স্পষ্টভাবে এটি নিষিদ্ধ করে (এখন)।
ugoren

1
@ugoren এখনও পার্ল সমাধানটি নিষেধ করে না, যা প্রোগ্রামটি শুরুর আগে সংকলিত হয় ।
ক্রંચার

3
@ ক্র্যাঞ্চার, আমি ভয় করি আপনি ঠিক বলেছেন। আমি আমার আইনজীবির সাথে পরামর্শ করব এবং আপনাকে বিলটি পাঠাবো।
উগ্রোরেন

13

বাশ - 65

[ `date +%d%m -r $0` = `date +%d%m` ]&&echo Happy birthday to me!

সহায়তার জন্য ugoren , টেক্কা এবং nyuszika7h ধন্যবাদ।


আমি মনে করি আপনি এর !সাথে পালাতে পারেন \!যাতে আপনার উদ্ধৃতিগুলির প্রয়োজন হবে না এবং 1 টি সংরক্ষণ করা উচিত।
ব্যবহারকারী 12205

আসলে আমার কাছে উক্তিগুলি ছিল যেহেতু আমি ভেবেছিলাম ফাঁকা জায়গাগুলির জন্য প্রতিধ্বনিগুলির প্রয়োজন হবে। আমি তাদের বাইরে নিয়ে এসেছি এবং উদ্দীপনা চিহ্নটি থেকে বাঁচলাম না এবং এটি এখনও কার্যকর। ভকভগক!
shiona

2
আপনাকে কেবল !ইন্টারেক্টিভ শেলগুলিতে পালাতে হবে , স্ক্রিপ্টগুলি নয়।
nyuszika7h

আপনি দুটি অক্ষর ব্যবহার করে সংরক্ষণ করতে পারেন [ এবং ]পরিবর্তে [[এবং ]]
nyuszika7h

1
বছরটি তৈরির তারিখের মতো না হলে কী কাজ করে?
ugoren

6

সি # 198.05 (233 - 15%)

using s=System;class P{static void Main(){string t=s.DateTime.Now.ToString("Mdd"),b="1202";if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==t|b==t)s.Console.Write("Happy birthday to "+(b==t?"you!":"me!"));}}

বিন্যাসকৃত:

using s = System;
class P
{
    static void Main()
    {
        string t = s.DateTime.Now.ToString("Mdd"), b = "1202";
        if (s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd") == t | b == t)
            s.Console.Write("Happy birthday to " + (b == t ? "you!" : "me!"));
    }
}

191 (কোনও বোনাস নেই)

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

181,05 (213 - 15%)

কিছু অতিরিক্ত নির্দেশাবলীর সাথে ( b.exeএক্সিকিউটেবলের ডিরেক্টরিতে এটি তৈরি করতে এবং এটি চালনা করতে হবে) আমি এটিকে এখানে নামাতে পারি:

using s=System;class P{static void Main(){string t=s.DateTime.Now.ToString("Mdd"),b="1202";if(s.IO.File.GetCreationTime("b.exe").ToString("Mdd")==t|b==t)s.Console.Write("Happy birthday to "+(b==t?"you!":"me!"));}}

171 (কোনও বোনাস নেই)

উপরের মত একই নির্দেশাবলী, এবার কেবল নিজের জন্মদিনে কোনও বার্তা মুদ্রণ করুন (সুতরাং -15% বোনাস নেই)।

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime("b.exe").ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

আপনি ,b="1202"==tতারিখের স্ট্রিংয়ের পরে যোগ করে এবং পরিবর্তে এটি ব্যবহার করে বোনাসের কয়েকটি বাইট সংরক্ষণ করতে পারেন।
আহসুস ফরাসী

1
ধন্যবাদ! যদিও "কয়েকটি বাইটস" এক হতে দেখা যাচ্ছে ... বা আমি কিছু অনুপস্থিত? সম্পাদনা আহ, আমি দেখি; আপনি বলেছেন ,b="1202"==tকিন্তু ==tঅংশটি সম্ভব নয় যেহেতু এটি একটি বুলের জন্য মূল্যায়ন করে এবং অন্যটি একটি স্ট্রিং। আপনি (এএফআইএকে) এটি একটি "ভার" ঘোষণায় দুটি ভিন্ন ধরণের ব্যবহার করতে পারবেন না।
রবিআইআইআই

আহ ঠিক আছে. আমি সি # ব্যবহার করেছি এর কিছুক্ষণ পরে গেছে। আমার খারাপ।
এআরুস

আপনি তারিখের তুলনা করে স্ট্রিংগুলির চেয়ে সহজ সংস্করণটি সংক্ষিপ্ত করতে পারেন। এই জাতীয় কিছু ব্যবহার করে CreationTime.Date == DateTime.Today
সুইভ

এটি কেবল আজ / এই বছর / জন্মদিনের জন্য কাজ করবে 0. অন্যান্য বছরের জন্য কীভাবে এটি কাজ করবে?
রবিআইআইআই

5

জাভা - 275 - 15% = 233.75 বোনাস ছাড়া / 237 বোনাস ছাড়াই

বোনাস সহ:

import java.util.*;class L{public static void main(String[]y){int s=f(new Date());String j="Happy birthday to ";System.out.print(s==f(new Date(new java.io.File("L.class").lastModified()))?j+"me!":s==183?j+"you!":"");}static int f(Date d){return d.getMonth()*40+d.getDate();}}

বোনাস ছাড়াই:

import java.util.*;class L{public static void main(String[]y){if(f(new Date())==f(new Date(new java.io.File("L.class").lastModified())))System.out.print("Happy birthday to me!");}static int f(Date d){return d.getMonth()*40+d.getDate();}}

আমার জন্ম 23 শে এপ্রিল মাসে হয়েছিল।


1
শুভ জন্মদিন থেকে , না জন্য ;-) শুধু আপনি অন্য বাইট :-) সংরক্ষিত
RobIII

@ রবিআইআইআই ধন্যবাদ, স্থির।
ভিক্টর স্টাফুসা

এছাড়াও, নতুন লাইনের ( \n)
আফাকের

@ রবিআইআইআই আবার ধন্যবাদ।
ভিক্টর স্টাফুসা

হ্যাঁ ... আমার নিজের পায়ে গুলি করা উচিত: পি আপনাকে স্বাগত জানায়;)
রবিআইআই

3

আমি বার্তাটিতে কয়েকটি বাইট সংরক্ষণ করতে এই ছোট কৌশলটি নিয়ে বেশ গর্বিত। আমি আশা করি এটি অন্যান্য উত্তরের অন্তর্ভুক্ত হবে। আমি এই প্রথম চিন্তা ছিল!

পাইথন

105 অক্ষর, কোনও অতিরিক্ত creditণ নেই। ফাইলটি "আমার কাছে শুভ জন্মদিন" হিসাবে সংরক্ষণ করুন এবং চালান। শুধুমাত্র জিএমটিতে চলে এবং "জন্মদিন" আপনার জন্ম তারিখ হিসাবে সংজ্ঞায়িত হয়, এটি বার্ষিকী নয় (প্রায়শই "জন্মদিন" নামেও ডাকে)।

import sys,os,time
if (int(os.stat(*sys.argv).st_atime/86400)==int(time.time()/86400)):print sys.argv[0]

এটি কাজ করার জন্য, এটি "আমার শুভ জন্মদিন" হিসাবে সংরক্ষণ করুন এবং চালান python "happy birthday to me"

দ্রষ্টব্য: অবশ্যই, একটি ছোট বুটস্ট্র্যাপ ছাড়া সমস্ত ফাইল ফাইলের মধ্যে থাকতে পারে, যেকোন যথেচ্ছভাবে বড় কোডটি বুটস্ট্র্যাপে কমিয়ে দেয়। সাধারণত আমি এই "প্রতারণা" বিবেচনা করব। তবে, "আমার কাছে জন্মদিনের শুভেচ্ছা" একটি অযৌক্তিক ফাইল নাম নয় - এটি প্রোগ্রামটি কী করে তা বর্ণনা করে যা কিছু প্রোগ্রামের (যেমন "পাইথন") এর চেয়ে অনেক ভাল, তাই এই ক্ষেত্রে আমি এটির অনুমতি দিচ্ছি :)


আমি মনে করি ফাইলটির নামের উপর নির্ভর করা প্রতারণা করছে (যদিও আমি এটি স্পষ্টভাবে বারণ করি নি)। যদি এটি অনুমোদিত হয় তবে কেন শুধু লিখবেন না eval(sys.argv[0])?
উগোরেন

এবং আমি একটি জন্মদিন সংজ্ঞায়িত করতে বিরক্ত করি নি, তবে এটি এমন একদিন আসে যখন বছরে একবার কোনও ব্যক্তি তাদের জন্মবার্ষিকী উদযাপন করে , আপনার জন্মের সঠিক দিনটি নয়।
উগোরেন

উগোরেন: আমি নীচে আমার নোটে এটি উল্লেখ করেছি (যা আপনার মন্তব্যের প্রাক-তারিখ)। However, "happy birthday to me" is not an unreasonable filename - it describes what the program does, much better than some programs (e.g. "python"), so in this case I'm going to allow it
আমাদানন ইনক।

2

মতলব: 66

t=dir('f.m');if strncmp(t.date,date,5),'Happy birthday to me!',end

ফাইলের নাম 'এফএম' হতে হবে


1
উপর আপনার জন্মদিন এটি "শুভ জন্মদিন বলতে হবে আপনি !" :-)
রবিআইআইআই

@ রবিআইআই: ওফস, আপনি ঠিক বলেছেন, আমি যথেষ্ট যত্ন সহকারে পড়িনি। দ্বিতীয় সংস্করণ মুছে ফেলবে। ধন্যবাদ!
এইচ.মাস্টার

আমি ধরে নিলাম যে strncmp(x, y, 5)তারিখগুলির 28-12-2013প্রথম 15 টি অক্ষরের ( 28-12যেমন উদাহরণস্বরূপ 28 ডিসেম্বর) তুলনা করা হচ্ছে । yyyy/mm/ddউদাহরণস্বরূপ ব্যবহারকারীর লোকাল সেটিংস যখন এটি কাজ করে ? মতলব কি dd-mm-yyyyসর্বদা ডিফল্ট হয় ? (উৎসুক). কিছুই নয় সম্পাদনা করুন : এটি পাওয়া গেছে! । মনে হয় এটি হয়। এটা কোন ব্যাপার জন্য যাহাই হউক না কেন হবে না mm/dd/yyyyবা dd-mm-yyyyউভয় বাম এবং ডান প্রতীক যাহাই হউক না কেন একই বিন্যাসে ব্যবহার করেন এবং উভয় 5 বামদিকের অক্ষর যাহাই হউক না কেন মেলে দিবে যেহেতু; বছর যতক্ষণ নেতৃত্ব দেয় না।
রবিআইআইআই

আপনার ভেরিয়েবলের দরকার কেন t? dir('f.m').dateকাজ করে না ?
উগ্রোরেন

@ ইউগোরেন: ফাইলের বৈশিষ্ট্যগুলি ফিরিয়ে আনা tপ্রয়োজনীয় dir(অন্যথায় এটি যে ডিরেক্টরিটি মেলে এটি কেবল সমস্ত ফাইলই ফেরত দিতে পারে 'f.m')। তদতিরিক্ত, ক্ষেত্র tঅ্যাক্সেস প্রয়োজন date
এইচ মিস্টার

2

ফ্রি, 204 সহ জিএনইউ কোবল

PROGRAM-ID.B.DATA DIVISION.WORKING-STORAGE SECTION.
1 A PIC XXXX/XX.
1 B PIC X(5).
1 C PIC X(21).
PROCEDURE DIVISION.ACCEPT A FROM DATE
ACCEPT C
MOVE WHEN-COMPILED TO B
IF A(3:5) = B OR "12/09" DISPLAY C.

আমি সেলিব্রিটি সম্পর্কে নিয়মগুলি ভঙ্গ করি, সুতরাং সেখানে কোনও বোনাস নেই ...

উত্পাদিত পাঠ্যটি হ'ল ব্যবহারকারী-ইনপুট (চালানোর সময় অনুরোধ করা)। যদি তা ভাল-তে না যায়, তবে লাইনটি সংজ্ঞায়িত করছেC অতিরিক্ত সাতটি অক্ষরের জন্য অবশ্যই মুছে ফেলা দরকার ACCEPT C, এবং DISPLAY Cহওয়া আবশ্যক DISPLAY "HAPPY BIRTHDAY TO ME!"

WHEN-COMPILEDএকটি বিশেষ-নিবন্ধ রয়েছে যা সংকলনের তারিখ / সময় রয়েছে যা প্রোগ্রামের জন্য উপলব্ধ (সর্বদা সহজ, আপনি জানতে পারেন যে আপনার সঠিক সংস্করণ রয়েছে)। এটি কাটা হয়েছে MOVEকারণ বাকিগুলির প্রয়োজন নেই।DATEবর্তমান তারিখটি - এটি হ'ল ইয়িমএমডিডি।

দ্য /যেহেতু কম্পাইল-ডেট স্ল্যাশ রয়েছে এমন একটি সংজ্ঞা, একটি সন্নিবেশ সম্পাদনা প্রতীক। একটি অতিরিক্ত চরিত্র, তবে তুলনামূলক সহজ করে।

সেলিব্রিটি = গ্রেস হপার


2

ব্যাচ - 37 বাইট

বাশের একটির উত্তর দ্বারা ব্যবহৃত পদ্ধতিটি চুরি করা হচ্ছে ..

@echo.>>%0&echo Happy birthday to me!

অন্যান্য পদ্ধতি - 145 বাইট

@for /f "tokens=2,3 delims=/ " %%a in ("%date%")do @for /f "tokens=1,2 delims=/" %%c in ("%~t0")do @if %%a%%b==%%c%%d @echo Happy Birthday to me!

1

রুবি, 69 অক্ষর / বাইট

puts'Happy birthday to me!'if(Time.new-File.atime($0))%31536000<86400

31536000এটি এক বছরে 86400সেকেন্ডের সংখ্যা এবং একদিনে সেকেন্ডের সংখ্যা।


4
দুর্ভাগ্যক্রমে, কেবলমাত্র সর্বোচ্চ সাত বছর বা তার জন্য সঠিকভাবে কাজ করে, যতক্ষণ না আপনি সময়ের পরে প্রথম লিপ বছরে না চলে।
আমদান

আপনার জন্মদিনের পর সকালে "শুভ জন্মদিন" বলে এবং আপনার জন্মের আগে জন্মদিনের শুভ জন্মদিনটিকে বলে না।
আমাদানোন ইনক।

1

জাভাস্ক্রিপ্ট

নোড.জেএস, 156 বাইট

b=new Date(require("fs").statSync(__filename).mtime);d=new Date();b.getDate()==d.getDate()&&b.getMonth()==d.getMonth()&&console.log("Happy birthday to me!")

ফাইলটির পরিবর্তনের সময় ব্যবহার করে।


আপনাকে এখন পর্যন্ত 56 বাইট দ্বারা
পিটুন

আমি আপনার চালানোর সময় আমি একটি রানটাইম ত্রুটি পেয়েছি, তবে ম্যাচের পদ্ধতি অবশ্যই চালাক much ত্রুটিটি ঠিক করুন এবং আপনি আমার উর্ধ্বতন পেয়েছেন। ;)
ক্রিস ডব্লিউ।

আপনি ত্রুটি এবং আপনার ওএস উদ্ধৃত করতে পারেন? আমি অনুমান করি এটি কেবল ক্রসপ্ল্যাটফর্ম নয়।
স্ট্রোকিয়াম

1

পাওয়ারশেল - 105 বাইট

if('{0:M}'-f(gi $MyInvocation.MyCommand.Definition).creationtime-eq(date -f M)){'Happy birthday to me!'}

Ungolfed:

if('{0:M}' -f (gi $MyInvocation.MyCommand.Definition).creationtime -eq (date -f M)){
  'Happy birthday to me!'
}

বোনাসটি মূল্যবান নয়, আমি কেবল 117.5 পেতে পারি।


1

পাওয়ারশেল - 127

if ((gci $MyInvocation.MyCommand.Path).lastwritetime.ToString("MMdd") -eq (get-date).ToString("MMdd")){"happy birthday to me!"}

15% বোনাসের জন্য - 151 বাইট, কম 15% = 128.4

$r=@{"0308"="you";(gci $MyInvocation.MyCommand.Path).lastwritetime.ToString("MMdd")="me"}[(get-date).tostring("MMdd")]
if($r){"Happy birthday to $r!"}

1
আমি কোনও পাওয়ারশেল বিশেষজ্ঞ নই, তবে এটি কি চলতি বছরে কাজ করবে? "প্রোগ্রাম" এর প্রথম, দ্বিতীয়, তৃতীয় ইত্যাদি জন্মদিন হলে কী হবে?
রবিআইআইআই

আপনি writeকমান্ডটি সরিয়ে ফেলতে পারেন - কেবলমাত্র "happy birthday to me!"এটি মুদ্রণ করে দেবে।
মামামেট

আপনার বেশ সঠিক। আমার এটা জানা উচিত।
ক্রিস জে

@ রোবিল - ওফস আমি যখন অন্য কিছু দ্বারা বিভ্রান্ত হয়েছি এবং কোডগল্ফকে বিলম্ব হিসাবে ব্যবহার করি তখন কিছু লিখতে আসে of স্থির (এটি জয়ের সুযোগ পেয়েছে না, মন)।
ক্রিস জে

1

রুবি - 80 103 87 বাইট

m=File.mtime $0
t=Time.now
puts"Happy birthday to me!"if t.month==m.month&&t.day==m.day

রুবি - 123 115 135 121 - 15% = 104.55 97.75 114.75 102.85 পয়েন্ট

t=Time.now
{me:File.mtime($0),you:Time.at(36e5)}.map{|n,d|puts"Happy birthday to #{n}!"if t.month==d.month&&t.day==d.day}

আপনার জন্মদিনটি কোথায় আসে তার উপর নির্ভর করে কিছুটা দীর্ঘ বা সংক্ষিপ্ত হতে পারে এবং এটি উপস্থাপনের সবচেয়ে সংক্ষিপ্ততম উপায়। আমার জন্য, এটি 36e5(যুগের পর থেকে কয়েক সেকেন্ড; সময় অঞ্চল নির্ভর)।


মেল গিবসন কি গণনা করে? এখানে একটি 138 বাইট - 35% বোনাস = 89.7-পয়েন্ট প্রোগ্রাম যা নিজে, আমাকে এবং মেলকে উদযাপন করে!

t=Time.now
{me:File.mtime($0),you:Time.at(36e5),Mel:Time.at(2e5)}.map{|n,d|puts"Happy birthday to #{n}!"if t.month==d.month&&t.day==d.day}

1
আপনার কোড ফেব্রুয়ারির পরের তারিখের জন্য লিপ বছরগুলিতে ব্যর্থ হয়।
উগোরেন

@ ইউজেন ঠিক আছে আপনি এটি স্থির করা হয়েছে, তবে প্রচুর পয়েন্ট হারিয়েছেন :(
টিম এস

তবে এখন আমি তাদের বেশিরভাগকেই দাবি করেছি! =)
টিম এস

0

PureBasic

বোনাস ছাড়াই - 142

If Bool(FormatDate("%dd%mm",Date())=FormatDate("%dd%mm",GetFileDate(ProgramFilename(),0)))
MessageRequester("","Happy birthday To me!")
EndIf

বোনাস সহ - 218 - 15% = 185.3

Dim s$(2)
s$(1)="me"
s$(2)="you"
m$="%dd%mm"
d$=FormatDate(m$,Date())
i=Bool(d$=FormatDate(m$,GetFileDate(ProgramFilename(),0)))|(Bool(d$="2301")<<1)
If i=0:End:EndIf
MessageRequester("","Happy birthday To "+s$(i)+"!")

0

টিআই-বেসিক, 68 বাইট

If Ans=0:getDate→G:0:G=G:If getDate=G:Disp "HAPPY BIRTHDAY TO ME!"

মনে রাখবেন, এই টোকেন এক বাইট আছেন: If , Ans, →, DispgetDateদুটি বাইট হয়। সমস্ত অন্যান্য এক-চরিত্রের প্রতীকগুলি একটি বাইট।


1
আপনি কি নিশ্চিত যে এটি ইউটিএফ -8?
ফোজড আউট

3
ওপি স্পষ্টতই বলেছে আপনার ইউটিএফ -8 ব্যবহার করা উচিত। এটি 66 অক্ষর এবং 68 বাইট।
nyuszika7h

2
আপনি যদি এটি 46 বাইট দাবি করতে চান তবে এটি 46 বাইটে লিখুন। যেমনটি এখন, এটি 68 বাইট।
ugoren

একটি আদর্শ টিআই-বেসিক পরিবেশে টোকেন মাপ অনুসারে এটি 55 বাইট, তবে সরল পাঠ হিসাবে এটি 68 হয় Also এছাড়াও প্রযুক্তিগতভাবে একটি শেষে থাকতে হবে না যাতে একটি বাইট সংরক্ষণ করতে পারে।
লেবু ড্রপ

0

জে 79

 echo((6!:0'')(('',:'Happy birthday to me!'){~])@:-:&(1 2&{)&:>])1{,1!:0{:4!:3''

বোনাস সংস্করণ120 - 15% = 102

দু'জনের জন্মদিন থাকাকালীন আমিও উভয় মুদ্রণের জন্য অতিরিক্ত ক্রেডিট পাব?

echo((2 6$(6!:0 '') , 0 2 7)(' ','Happy birthday to ',"2 1]3 5$'you! me!  both!'){~#.@:(-:&(1 2&{)"1)&:>])1{,1!:0{:4!:3''

ব্যাখ্যা (ডান থেকে বাম):

last =: {:4!:3''     NB. Take the last script run (i.e. the file itself)
time =: 1{,1!:0 last NB. the modification time is the second element in that file's listing

ট্রেনের কেন্দ্রীয় ক্রিয়া

unbox_both =: &:>      NB. unboxes left and right argument
match  =: -:&(1 2&{)"1 NB. for each date given, left and right, compare them
to_int =: #.           NB. convert boolean to int
from   =: {~           NB. from the left array, take element right.

NB. H contains messages an empty row, appended to all combinations of messages. 
H =: (' ','Happy birthday to ',"2 1]3 5$'you! me!  both!')

V =: (H from to_int)@:match unbox_both NB. after unboxing and comparing, 
                                       NB. select the according message

কেন্দ্রীয় ট্রেনের জন্য বাম টাইন:

dates=: (2 6$(6!:0 '') , 0 2 7) NB. the current date, and the relevant fields of my birthday.

NB. Combining the bricks:
echo (dates V ]) time           NB. output the monads result on time.

0

জাভা - 196

প্রক্রিয়াতে 41 টি অক্ষর শেভ করে স্ট্রিংস ব্যবহার করে এটি অন্য জাভা জমা দেওয়ার থেকে পৃথক। এটি java.util.Date বা বছরের-বছরের বছরের স্ট্রিং হিসাবে দীর্ঘ হিসাবে ফর্ম্যাট করতে স্ট্রিং.ফর্ম্যাট ("% tj") ব্যবহার করে এবং এই দুটি স্ট্রিংয়ের সাথে তুলনা করে।

class Z{public static void main(String[]y){if("".format("%tj",new java.util.Date()).equals("".format("%tj",new java.io.File("Z.class").lastModified())))System.out.print("Happy birthday to me!");}}

বিন্যাসকৃত:

class Z
{
    public static void main(String[] y)
    {
        if ("".format("%tj", new java.util.Date()).equals("".format("%tj", new java.io.File("Z.class").lastModified())))
            System.out.print("Happy birthday to me!");
    }
}

1
বছরের দিনটি লিপ বছরের সাথে ভাল কাজ করে না।
ugoren

@ ইউগোরেন আমি সম্মত তবে, যেহেতু প্রতিযোগিতাটি বর্তমানে চলছে এবং আমরা 20 শে ফেব্রুয়ারিতে। সংকলন ডাট কয়েক দিনের জন্য ভাল হওয়া উচিত এবং পরের বছরগুলিতে কোনও সমস্যা না ঘটায়। ২৮ শে ফেব্রুয়ারির পরে সংকলন করার সময় সত্যই একটি (ভবিষ্যত) সমস্যা দেখা দেবে।
রবিআইআইআই

আমি যদি ২৮ শে ফেব্রুয়ারির পরে সংকলন করতাম তবে আমি ছয় দফার অক্ষরের জন্য স্ট্রিং বিন্যাসটিকে "% tm% td" তে পরিবর্তন করতে পারতাম
টিম্যাকিজ

0

সি # 191 কোনও বোনাস নেই

using s=System;class P{static void Main(){if(s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd")==s.DateTime.Now.ToString("Mdd"))s.Console.Write("Happy birthday to me!");}}

ফরম্যাট:

using s = System;
class P
{
    static void Main()
    {
        if (s.IO.File.GetCreationTime(typeof(P).Assembly.Location).ToString("Mdd") == s.DateTime.Now.ToString("Mdd"))
            s.Console.Write("Happy birthday to me!");
    }
}

আপনি কেবল দুটিবার এক্স ব্যবহার করেন; var x="MMdd";+ ToString ( x) + ToString ( x) = 15 যেখানে ToString ( "MMdd"); + টুস্ট্রিং ( "MMdd"); শুধুমাত্র 12 এর দাম।
রবিআইআইআই

এছাড়াও, একটি নতুন লাইন প্রয়োজন হয় না তাই WriteLine()এটি সংক্ষিপ্ত করা যেতে পারে Write()। উপরে এবং এই পরিবর্তনের জায়গায় আমার ঠিক যেমন সমাধান রয়েছে ঠিক তেমন সমাধান ;-)
রবিআইআই

1
আপনারও স্কোর আপডেট করা উচিত যা এখন ১৯৩৩। এবং আপনি দুটি এম এর অফ * ইঙ্গিত * শেভ করে 191 এ নামাতে পারেন : পি
রবিআইআইআই

0

জাভাস্ক্রিপ্ট (নোড.জেএস) - 100 বাইট

(require('fs').fstatSync(4).mtime+1).match(Date().substr(4,6))&&console.log('Happy birthday to me!')

0

vb.net ~ 161c

এটি যার জন্মদিন তা সবার কাছে উদযাপন বার্তা মুদ্রণ করবে।

Module M
Sub Main
For Each b In{({"1705","Alan"}),({"2012","You"}),({FileDateTime(Process.GetCurrentProcess.MainModule.FileName).ToString("ddMM"),"Me"})}
If b(0)=Now.ToString("ddMM") Then Console.WriteLine("Happy Birthday To {0}!",b(1))
Next
End Sub
End Module

অ্যালান => অ্যালান কায়ে

স্কোর: 253c (-33c vb.net মিনিট) = 220 - 15% (আমার জন্মদিনের বোনাস) = 187c - 14% (জন্মদিন উদযাপন) = 160.82 ~ 161c বা 220c - 29% = 156.2 ~ 157c


আপনি আপনার জন্মদিন বা কোনও সেলিব্রিটির বোনাস পেতে পারেন। দুটোই নয়।
ugoren

@ ইউগোরেন স্কোরিং এটিকে একচেটিয়া বা বলে উল্লেখ করে না, তাই আমি বা এর যৌক্তিক অর্থ ব্যবহার করছি।
অ্যাডাম স্পিড

0

পাওয়ারশেল, 82 বাইট

ক্রিস জে এবং স্পেলিংডি এর উত্তরও দেখুন

"Happy birthday to me!"|?{(gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r)-eq(date|% D*r)}

কোথায়

gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r

অভিব্যক্তির শর্টকাট এবং উপস্বের সংমিশ্রণ :

Get-Valiable MyInvocation -value|% MyCommand|% Path|Get-ChildItem|% LastWritetime|% DayOfYear

এটি একটি আধ্যাত্মিক ফর্ম সমতুল্য:

(Get-ChildItem $MyInvocation.MyCommand.Path).LastWritetime.DayOfYear

পাওয়ারশেল, 119 বাইট - 14% = 102.34 পয়েন্ট

filter e{$_-eq(date|% D*r)}$('me'|?{gv My* -v|% M*|% p*h|gci|% l*w*e|% D*r|e}
'Prof'|?{3|e})|%{"Happy birthday to $_!"}

3 জানুয়ারী , স্ক্রিপ্ট প্রদর্শন Happy birthday to Prof!। 3 জানুয়ারী এই স্ক্রিপ্টটি সংরক্ষণ করা হলে দুটি শুভেচ্ছা প্রদর্শিত হবে।


-1

সি # - 63 বাইট

class P
{
    static void Main()
    {
          Console.Write("Happy birthday to me!"));
    }
}

আমি সংকলনের সময়টি বেছে নিই । সি # কোড প্রনয়ন যেহেতু MSIL যার উপর রানটাইম কম্পাইল করা হয় দ্বারা এক্সিকিউটেবল কোড জে আই টি JIT কম্পাইলার , এই প্রোগ্রামটি শর্ত পূরণ।

সম্পাদনা করুন - মন্তব্যে নির্দেশিত হিসাবে সম্ভবত অবৈধ উত্তর।


1
পুরানো কৌশল, আর বৈধ নয়। বিধি 2 বলছে "অবশ্যই কোনওভাবেই প্রোগ্রামের অনুরোধ বা সম্পাদন দ্বারা প্রভাবিত হবে না"।
উগোরেন

সেই অনুযায়ী আপডেট করা হয়েছে। ধন্যবাদ @ ইউগোরেন
rahulroy9202

@ ইউগোরেন ফিল এইচ এর পিইআরএল কোডটিও এই একই কৌশলটি ব্যবহার করে। সর্বাধিক ভোট দেওয়া উত্তর চেক করুন।
rahulroy9202

2
এটিও একটি অবৈধ উত্তর। তবে - তিনি প্রথমে এই কৌশলটি ব্যবহার করেছিলেন এবং সেই সময়ে তিনি এটি করেছিলেন নিয়মগুলি এটির অনুমতি দিয়েছে।
উগোরেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.